perm filename PUP5[AP,DBL]2 blob sn#078749 filedate 1973-12-19 generic text, type T, neo UTF8
(FILECREATED "19-DEC-73 00:16:44" PUP5)


(DEFINEQ

(@
  [LAMBDA (C)
    C])

(A:BEING:ORDER
  [LAMBDA (B1 B2)
    (LESSP (FAST:BEING:COMPLEX B1)
           (FAST:BEING:COMPLEX B2])

(A:BEING:WHEN
  [LAMBDA (BB)
    (SETQ SUM 0)
    [MAPC (GETP BB WHEN)
          (FUNCTION (LAMBDA (W)
              (COND
                ((EVAL (CAR W))
                  (SETQ SUM (PLUS SUM (EVAL (CADR W]
    SUM])

(AD
  [LAMBDA (L)
    [MAPC L (FUNCTION (LAMBDA (Y)
              (SET Y Y]
    (SETQ PUP5FNS (SORT (APPEND PUP5FNS L)))
    (SETQ PUP5FNS (INTERSECTION PUP5FNS PUP5FNS))
    [MAPC SET:OF:BEINGS (FUNCTION (LAMBDA (X)
              (PUT X SPEC:WHY (QUOTE (QUOTE (NO SPECIAL REASON]
    (MAKEFILE (QUOTE PUP5])

(ADD:BEING
  [LAMBDA (B)
    (SET B B)
    (PUT B BEING T)
    [MAPC SET:OF:BEING:PARTS (FUNCTION (LAMBDA (X)
              (PRIN1 X)
              (PRIN1 "   ")
              (PUT B X (READ]
    (PRIN1 
"*** FINISHED ***  
  SHOULD I MAKE A NEW FILE OF PUP? (T  OR  NIL)..... ")
    (SETQ SET:OF:BEINGS (CONS B SET:OF:BEINGS))
    (SEMI:COMPILE B)
    (ADD:EFFECTS B)
    (ADD:IDEN B)
    (COND
      ((RATOM)
        (AD (LIST B)))
      (T (SETQ PUP5FNS (CONS B PUP5FNS))
         T])

(ADD:EFFECTS
  [LAMBDA (B)
    (SETQ TEMPG (COPY (GETP B MAIN:EFFECTS)))
    (SETQ EFFECTS:TABLE (APPEND EFFECTS:TABLE TEMPG))
    (SORT EFFECTS:TABLE CAAR:ORDER])

(ADD:IDEN
  [LAMBDA (B)
    (SETQ TEMPG (COPY (GETP B IDEN)))
    (SETQ IDEN:TABLE (APPEND IDEN:TABLE TEMPG))
    (SORT IDEN:TABLE CAAR:ORDER])

(ASSERTIONS
  [LAMBDA (TEMPA)
    [MAPC ASSERT:LISTS (FUNCTION (LAMBDA (L)
              (SETQ TEMPA (CONS (LIST L (EVAL L))
                                TEMPA]
    TEMPA])

(ATTENTION:DEMONS
  [LAMBDA NIL T])

(CAAR:ORDER
  [LAMBDA (O1 O2)
    (CAR:ORDER (CAR O1)
               (CAR O2])

(CAR:ORDER
  [LAMBDA (O1 O2)
    (COND
      (O1 (COND
            [O2 (COND
                  ((EQUAL (CAR O1)
                          (CAR O2))
                    (CAR:ORDER (CDR O1)
                               (CDR O2)))
                  ((ATOM (CAR O1))
                    (ALPHORDER (CAR O1)
                               (CAR O2)))
                  ((ATOM (CAR O2))
                    NIL)
                  (T (CAR:ORDER (CAR O1)
                                (CAR O2]
            (T NIL)))
      (T T])

(CHANGEB
  [LAMBDA (B:NAME B:PART)
    (SETQ TEMP (GETP B:NAME B:PART))
    (EDITV TEMP)
    (COND
      ((EQUAL B:PART MAIN:EFFECTS)
        (REMOVE:EFFECTS B:NAME))
      ((EQUAL B:PART IDEN)
        (REMOVE:IDEN B:NAME)))
    (PUT B:NAME B:PART TEMP)
    (COND
      ((MEMBER B:PART COMPILABLE:BEING:PARTS)
        (SEMI:COMPILE B:NAME)))
    (COND
      ((EQUAL B:PART MAIN:EFFECTS)
        (ADD:EFFECTS B:NAME))
      ((EQUAL B:PART IDEN)
        (ADD:IDEN B:NAME)))
    T])

(CHANGEP
  [LAMBDA (P)
    (MAPC SET:OF:BEINGS (FUNCTION (LAMBDA (B)
              (SETQ X (GETP B P))
              (PRINT B)
              (COND
                ((ATOM X)
                  (PRIN1 "SORRY, PART IS NIL. NEW PART ....... ")
                  (SETQ X (READ)))
                (T (EDITV X)))
              (PUT B P X])

(CLASS
  [NLAMBDA FORM
    (MAPCAR FORM (FUNCTION (LAMBDA (F1)
                (COND
                  ((ATOM F1)
                    F1)
                  (T (EVAL F1])

(COLON:BACK
  [LAMBDA (LL)
    (SETQ MM (CAR LL))
    [SETQ LL (MAPCAR (CDR LL)
                     (FUNCTION (LAMBDA (E)
                         (CONCAT ":" E]
    (SETQ LL (CONS MM LL))
    (PACK LL])

(COLON:BREAK
  [LAMBDA (E)
    (PROG (UP RP)
          (SETQ UP (UNPACK E))
          (SETQ BUFF NIL)
      LL  [COND
            ((NULL UP)
              (SETQ RP (CONS (PACK BUFF)
                             RP))
              (RETURN (REVERSE RP]
          [COND
            ((MEMBER (CAR UP)
                     BREAKUP:LIST)
              (SETQ RP (CONS (PACK BUFF)
                             RP))
              (SETQ BUFF NIL))
            (T (SETQ BUFF (NCONC1 BUFF (CAR UP]
          (SETQ UP (CDR UP))
          (GO LL])

(CSORT
  [NLAMBDA X
    (MAPC X (FUNCTION (LAMBDA (L)
              (SET L (SORT (COPY (EVAL L])

(DEFERRAL:DEMON
  [LAMBDA NIL
    (MAPCAR UNDEFERRED:DECISION:LIST DEFER:DECISION])

(DIMENSION1
  [LAMBDA (B)
    (EVAL (CAR (GETP B COMPLEXITY:VECTOR])

(DIMENSION2
  [LAMBDA (B)
    (EVAL (CADR (GETP B COMPLEXITY:VECTOR])

(DIMENSION3
  [LAMBDA (B)
    (EVAL (CADDR (GETP B COMPLEXITY:VECTOR])

(DISK:DUMP
  [LAMBDA (FILE STUFF)
    (SETQ FILEVARS (MKATOM (CONCAT (MKSTRING FILE)
                                   "VARS")))
    (SET FILEVARS (QUOTE (EVERYTHING)))
    (SETQ EVERYTHING STUFF)
    (MAKEFILE FILE])

(DOT:PROD
  [LAMBDA (L1 L2)
    (COND
      [L1 (PLUS (TIMES (CAR L1)
                       (CAR L2))
                (DOT:PROD (CDR L1)
                          (CDR L2]
      (T 0])

(DUMP:BEING
  [LAMBDA (B)
    (PRIN1 "*************************  ")
    (PRINT B)
    [MAPC SET:OF:BEING:PARTS (FUNCTION (LAMBDA (X)
              (COND
                ((SETQ X2 (GETP B X))
                  (PRINT X)
                  (PP X2)
                  (TERPRI]
    (QUOTE FINISHED])

(ENCODE
  [LAMBDA (FUNC FNAME FDESC F1 CODE FN:VALUE FINAL:CO:REQ BEING:FLAG 
                DEMON:FLAG)
    (PROG1
      (AND
        (SETQ BEING:STACK (CONS ENCODE BEING:STACK))
        (AND (MATCH (VECTOR (VECTOR FRAG1)
                            NAME ANY1 FRAG2 ANY2)
                    FUNC)
             (SETQ FDESC FRAG1)
             (SETQ FNAME ANY1)
             (SETQ BNAME ANY2))
        (PUSH:DEMONS NIL)
        (PUT ENCODE SPEC:WHY BECAUSE)
        [NOT (MEMBER NIL (MAPCAR USER:INTERRUPT:DEMONS (QUOTE APPLY*]
        [SETQ FN:VALUE
          (PROGN
            (SETQ F1 (CADR FDESC))
            [MAPC TYPE:OF:LIST (FUNCTION (LAMBDA (PC)
                      (COND
                        ((MATCH (VECTOR F1 IS FRAG1)
                                PC)
                          (SETQ CODE FRAG1]
            [COND
              ((NULL CODE)
                (SETQ CODE (GETP F1 META:CODE]
            [SETQ UNDEFINED:SECTION:LIST
              (SETUNION UNDEFINED:SECTION:LIST
                        (SETDIFFERENCE (OUTNIL (FLATTEN CODE))
                                       (APPEND WRITTEN:PROGRAMS:LIST 
                                               PUP5FNS 
                                            PRIMITIVE:PROGRAMS:LIST 
                                               PRIMITIVE:VARS:LIST 
                                               SET:OF:BEINGS 
                                               SET:OF:BEING:PARTS 
                                               PUP5VARS]
            (EVAL
              (LIST (QUOTE DEFINEQ)
                    (LIST FNAME
                          (APPEND (LIST (QUOTE LAMBDA)
                                        (APPEND (GETP (CAR FDESC)
                                                      EXPLICIT:ARGS)
                                                (GETP (CAR FDESC)
                                                      IMPLICIT:ARGS)))
                                  CODE]
        (NOT (MEMBER NIL (MAPCAR FINAL:CO:REQ SATISFY)))
        (POP:DEMONS)
        (SETQ BEING:FLAG T)
        (SETQ BEING:STACK (CDR BEING:STACK))
        FN:VALUE)
      (COND
        ((NULL BEING:FLAG)
          (SETQ BEING:STACK (CDR BEING:STACK))
          (POP:DEMONS))
        (DEMON:FLAG (POP:DEMONS])

(FAD
  [LAMBDA (L)
    [MAPC L (FUNCTION (LAMBDA (Y)
              (SET Y Y]
    [SETQ PUP5FNS (SORT (COPY (APPEND PUP5FNS L SET:OF:BEINGS]
    (SETQ PUP5FNS (INTERSECTION PUP5FNS PUP5FNS))
    (SETQ TEMP5 PUP5VARS)
    [SETQ PUP5VARS (REVERSE (CONS (QUOTE (P (PRIN1 
   "  FULL PUP FILE;   USE MAD OR AD OR MAKEFILE FOR NEW VERSION  ")))
                                  (CDR (REVERSE PUP5VARS]
    [MAPC SET:OF:BEINGS (FUNCTION (LAMBDA (X)
              (PUT X SPEC:WHY (QUOTE (QUOTE (NO SPECIAL REASON]
    (MAKEFILE (QUOTE PUP5))
    (SETQ PUP5VARS TEMP5)
    (SETQ PUP5FNS (SETDIFFERENCE PUP5FNS SET:OF:BEINGS))
    T])

(FAST:BEING:COMPLEX
  [LAMBDA (B)
    (DOT:PROD (QUOTE (.1 .6 .3))
              (MAPCAR (GETP B COMPLEXITY:VECTOR)
                      EVAL])

(FILL:IN:UNDEFINED:SECTION
  [LAMBDA (PROGRAM CHOICE FN:VALUE FINAL:CO:REQ BEING:FLAG DEMON:FLAG)
    (PROG1
      (AND (SETQ BEING:STACK (CONS FILL:IN:UNDEFINED:SECTION 
                                   BEING:STACK))
           UNDEFINED:SECTION:LIST
           (PUSH:DEMONS NIL)
           (SETQ CHOICE (MINIMUM UNDEFINED:SECTION:LIST 
                                 FAST:BEING:COMPLEX))
           [TRY:TO:SATISFY (QUOTE (VECTOR TYPE OF (VECTOR (@ CHOICE)
                                                          HAS BEEN 
                                                          STUDIED]
           (PUT FILL:IN:UNDEFINED:SECTION SPEC:WHY BECAUSE)
           [NOT (MEMBER NIL (MAPCAR USER:INTERRUPT:DEMONS (QUOTE APPLY*]
           (SETQ FN:VALUE
             (COND
               ((SETQ PROGRAM (APPEND PROGRAM (ENCODE CHOICE)))
                 (SETQ UNDEFINED:SECTION:LIST (PULLOUT CHOICE 
                                             UNDEFINED:SECTION:LIST))
                 T)
               (T [PUT CHOICE COMPLEXITY:VECTOR
                       (APPEND [LIST (DIMENSION1 CHOICE)
                                     (PLUS .6 (TIMES .4 (DIMENSION2
                                                       CHOICE]
                               (CDDR (GETP CHOICE COMPLEXITY:VECTOR]
                  NIL)))
           (NOT (MEMBER NIL (MAPCAR FINAL:CO:REQ SATISFY)))
           (POP:DEMONS)
           (SETQ BEING:FLAG T)
           (SETQ BEING:STACK (CDR BEING:STACK))
           FN:VALUE)
      (COND
        ((NULL BEING:FLAG)
          (SETQ BEING:STACK (CDR BEING:STACK))
          (POP:DEMONS))
        (DEMON:FLAG (POP:DEMONS])

(FIRST:FEW
  [LAMBDA (L)
    (SETQ N (PLUS 1 (IQUOTIENT (LENGTH L)
                               2)))
    (REVERSE (NTH (REVERSE L)
                  N])

(FIRSTN
  [LAMBDA (N L)
    (PROG (TTT)
      LLL (COND
            ((ZEROP N)
              (RETURN TTT)))
          (SETQ N (SUB1 N))
          (SETQ TTT (NCONC1 TTT (CAR L)))
          (SETQ L (CDR L))
          (GO LLL])

(FLATTEN
  [LAMBDA (L)
    (COND
      ((ATOM L)
        (LIST L))
      (T (APPEND (FLATTEN (CAR L))
                 (FLATTEN (CDR L])

(FOREACH
  [LAMBDA (X IN SET DO ACTION)
    (PROG (RESULT)
      START:HERE
          (COND
            ((NULL SET)
              (RETURN RESULT)))
          (SET X (CAR SET))
          (SETQ SET (CDR SET))
          (SETQ RESULT (EVAL ACTION))
          (GO START:HERE])

(FOREVER
  [LAMBDA NIL NIL])

(FRINGE:OF:CONCIOUSNESS:DEMON
  [LAMBDA NIL T])

(IDIOM:DEMON
  [LAMBDA NIL T])

(INFERENCE:DEMONS
  [LAMBDA NIL T])

(INITIALS
  [LAMBDA (L)
    (MAPCAR L (FUNCTION (LAMBDA (E)
                (CAR (UNPACK E])

(INVECTOR
  [LAMBDA (L)
    (COND
      ((ATOM L)
        L)
      ((EQUAL (CAR L)
              VECTOR)
        (MAPCAR L INVECTOR))
      (T (CONS VECTOR (MAPCAR L INVECTOR])

(LUMP:ASSERTIONS
  [LAMBDA (L TEMPL TEMPL2)
    (SETQ TEMPL NIL)
    (SETQ L (ASSERTIONS))
    [MAPC L (FUNCTION (LAMBDA (L1)
              (SETQ TEMPL (APPEND TEMPL (CADR L1]
    (SETQ TEMPL2 (COPY TEMPL))
    (SETQ TEMPL2 (INTERSECTION TEMPL2 TEMPL2))
    (SORT TEMPL2])

(MAD
  [LAMBDA (L)
    [MAPC L (FUNCTION (LAMBDA (Y)
              (SET Y Y]
    (SETQ PUP5FNS (SORT (APPEND PUP5FNS L)))
    (SETQ PUP5FNS (INTERSECTION PUP5FNS PUP5FNS))
    (SETQ PUP5FNS (SETDIFFERENCE PUP5FNS SET:OF:BEINGS))
    (SETQ TEMP5 PUP5VARS)
    [SETQ PUP5VARS (REVERSE (CONS (QUOTE (P (MAPC SET:OF:BEINGS 
                                                  SEMI:COMPILE)
                                            (PRIN1 
    "  MINI PUP FILE:  USE FAD OR AD OR MAKEFILE FOR NEW VERSION  ")))
                                  (CDR (REVERSE PUP5VARS]
    [MAPC SET:OF:BEINGS (FUNCTION (LAMBDA (X)
              (PUT X SPEC:WHY (QUOTE (QUOTE (NO SPECIAL REASON]
    (MAKEFILE (QUOTE PUP5))
    (SETQ PUP5VARS TEMP5)
    (SETQ PUP5FNS (APPEND SET:OF:BEINGS PUP5FNS))
    T])

(MAIN:WORDS
  [LAMBDA (L)
    (SETDIFFERENCE L MINOR:WORDS])

(MAKE:SPECIFIC
  [LAMBDA (A)
    (SETQ IS:SPECIFIC:LIST (CONS A IS:SPECIFIC:LIST])

(MATCH
  [LAMBDA (A B LD)
    [SETQ LD (ADD1 (DIFFERENCE (LENGTH B)
                               (LENGTH A]
    (SETQ MATCH:RESULT T)
    [COND
      ((MINUSP LD)
        NIL)
      (T (MAPC A (FUNCTION (LAMBDA (A1)
                   (COND
                     ((MEMB A1 (QUOTE (ANY1 ANY2 ANY3)))
                       (SET A1 (CAR B))
                       (SETQ B (CDR B)))
                     [(MEMB A1 (QUOTE (FRAG1 FRAG2)))
                       (SET A1 (FIRSTN LD B))
                       (SETQ B (NTH B (ADD1 LD]
                     ((EQUAL A1 (CAR B))
                       (SETQ B (CDR B)))
                     ((LISTP A1)
                       [SETQ MATCH:RESULT (AND MATCH:RESULT
                                               (MATCH A1 (CAR B]
                       (SETQ B (CDR B)))
                     (T (SETQ MATCH:RESULT NIL]
    (AND (NULL B)
         MATCH:RESULT])

(MINIMUM
  [LAMBDA (L F MINV MIN TV ELE)
    (SETQ MIN (CAR L))
    (SETQ MINV (F MIN))
    [MAPC (CDR L)
          (FUNCTION (LAMBDA (ELE)
              (COND
                ((LESSP (SETQ TV (F ELE))
                        MINV)
                  (SETQ MIN ELE)
                  (SETQ MINV TV]
    MIN])

(MOVE:BEING
  [LAMBDA (B:OLD B)
    (SET B B)
    (PUT B BEING T)
    (SETQ SET:OF:BEINGS (CONS B SET:OF:BEINGS))
    [MAPC SET:OF:BEING:PARTS (FUNCTION (LAMBDA (P)
              (PUT B P (COPY (GETP B:OLD P]
    (ADD:EFFECTS B)
    (ADD:IDEN B)
    (SETQ PUP5FNS (CONS B PUP5FNS))
    (SEMI:COMPILE B])

(MULT:INTERSECTION
  [LAMBDA (L)
    (COND
      [(CDDR L)
        (SETINTERSECTION (CAR L)
                         (MULT:INTERSECTION (CDR L]
      (T (SETINTERSECTION (CAR L)
                          (CADR L])

(NEW:IDEN
  [LAMBDA NIL
    (MAPC SET:OF:BEINGS
          (FUNCTION (LAMBDA (B)
              (PUT B IDEN
                   (LIST [LIST (QUOTE AND)
                               (LIST (QUOTE EQUAL)
                                     (QUOTE (CAR LI))
                                     B)
                               (LIST (QUOTE EQUAL)
                                     (QUOTE (LENGTH (CDR LI)))
                                     (LENGTH (GETP B EXPLICIT:ARGS]
                         (LIST (QUOTE LIST)
                               B
                               (LIST TRANSLATE (QUOTE (CADR LI])

(NEW:LEVEL
  [LAMBDA (EXPERTISE)
    (PROG NIL
      L2  (COND
            (EXPERTISE (PRIN1 "USER INTERRUPT LEVEL... "))
            (T (PRIN1 

"HELLO THERE.  I AM READY TO START .

HOW OFTEN SHOULD I LET YOU INTERRRUPT ME, TO ASK ME ABOUT WHAT I'M
DOING?  TYPE A DIGIT, AS EXPLAINED BELOW:

0  NEVER (ULTIMATE PRODUCTION-RUN MODE)
2  A COUPLE OF TIMES DURING THE COURSE OF WRITING A PROGRAM
4  DURING EACH PHASE OF WRITING A PROGRAM
6  DURING THE WRITING OF EACH NONTRIVIAL SUBFUNCTION OF A PROGRAM
8  DURING EACH PHASE OF WRITING EACH SUBFUNCTION OF A PROGRAM
10 EACH TIME A BEING TRANSFERS CONTROL (ULTIMATE DEBUG MODE)

OK, NOW TYPE A DIGIT... ")))
      L   [SETQ PERMANENT:USER:INTERRUPT:DEMONS
            (SELECTQ (RATOM)
                     (0 (CLASS))
                     (2 (CLASS USER:INTERRUPT:AT:DEBUG 
                               USER:INTERRUPT:AT:END))
                     (4 (CLASS USER:INTERRUPT:AT:PHASES))
                     (6 (CLASS USER:INTERRUPT:AT:PHASES 
                               USER:INTERRUPT:AT:CODING))
                     (8 (CLASS USER:INTERRUPT:AT:PHASES 
                               USER:INTERRUPT:AT:CODING 
                               USER:INTERRUPT:AT:ADAPTING))
                     (10 (CLASS PERMIT:USER:INTERRUPT))
                     (AND (PRIN1 

"
***  ERROR  ***     YOU MUST TYPE ONE EVEN INTEGER FROM 0 TO 10
                      TRY   AGAIN:
")
                          (GO L]
          (SETQ USER:INTERRUPT:DEMONS PERMANENT:USER:INTERRUPT:DEMONS])

(OUTNIL
  [LAMBDA (S)
    (COND
      ((ATOM S)
        S)
      ((EQUAL (CAR S)
              NIL)
        (OUTNIL (CDR S)))
      (T (CONS (OUTNIL (CAR S))
               (OUTNIL (CDR S])

(OUTQUOTE
  [LAMBDA (S)
    (COND
      ((ATOM S)
        S)
      [(EQUAL (CAR S)
              (QUOTE QUOTE))
        (CONS TUPLE (OUTQUOTE (CADR S]
      (T (CONS (OUTQUOTE (CAR S))
               (OUTQUOTE (CDR S])

(OUTTUPLE
  [LAMBDA (S)
    (COND
      ((ATOM S)
        S)
      ((EQUAL (CAR S)
              TUPLE)
        (OUTTUPLE (CDR S)))
      (T (CONS (OUTTUPLE (CAR S))
               (OUTTUPLE (CDR S])

(OUTVECTOR
  [LAMBDA (S)
    (COND
      ((ATOM S)
        S)
      ((EQUAL (CAR S)
              VECTOR)
        (OUTVECTOR (CDR S)))
      (T (CONS (OUTVECTOR (CAR S))
               (OUTVECTOR (CDR S])

(PERMIT:USER:INTERRUPT
  [LAMBDA NIL
    (COND
      (EXPERTISE (PRIN1 "INTERRUPT? "))
      (T (PRIN1 
"
DO YOU WISH TO INTERRUPT ME NOW, TO ASK ME ABOUT WHAT I'M DOING? ")))
    (SELECTQ (RATOM)
             (Y (PROCESS:USER:INTERRUPT))
             (N T)
             (PROGN (PRIN1 "
NO, NO.  TYPE  Y   OR    N   ......... ")
                    (PERMIT:USER:INTERRUPT])

(POP:DEMONS
  [LAMBDA NIL
    (SETQ CURRENT:DEMONS (CAR DEMON:STACK))
    (SETQ DEMON:STACK (CDR DEMON:STACK))
    (SETQ DEMON:FLAG NIL)
    T])

(PROCEDURE:INTERSECTION
  [LAMBDA (P)
    (SETQ P1 (CAAR P))
    (COND
      ([MEMBER NIL (MAPCAR (CDR P)
                           (FUNCTION (LAMBDA (P2)
                               (EQUAL P1 P2]
        NIL)
      [(EQUAL P1 (QUOTE PROGN))
        (CONS P1 (MULT:INTERSECTION (MAPCAR P (QUOTE CDR]
      (T NIL])

(PROCEDURE:SUBSET
  [LAMBDA (A1 A2)
    (NOT (MEMBER NIL (MAPCAR (CDR A1)
                             (FUNCTION (LAMBDA (A3)
                                 (MEMBER A3 A2])

(PROCESS:USER:INTERRUPT
  [LAMBDA NIL
    (PROG (RESPONSE BC BC1 BC2)
          (COND
            ((NOT EXPERTISE)
              [PRINT (APPEND (QUOTE (BEING IS))
                             (LIST (CAR BEING:STACK]
              (PRIN1 " TYPE  ?  OR ")))
          (SETQ BC (CAR BEING:STACK))
          (SETQ BC1 NIL)
          (SETQ BC2 (CDR BEING:STACK))
      L   (PRIN1 " REQUEST: ")
          [SELECTQ
            (SETQ RESPONSE (READ))
            [? (PRIN1 

" YOUR OPTIONS ARE AS FOLLOWS:

QUIT    END THE INTERRUPT
BEING   PRINT NAME OF CURRENT BEING
DEMONS  PRINT SET OF DEMONS CURRENTLY ACTIVE
CONTROL:HISTORY    PRINT LIST OF BEINGS IN CONTROL, THE PATH FROM THE
                   CURRENT BEING BACK TO THE BEGINNING OF THE PROGRAM
OLDER   CONSIDER THE BEING WHICH CALLED THE CURRENT ONE
YOUNGER CONSIDER THE BEING WHICH THE CURRENT ONE CALLED
OLDEST  CONSIDER THE FIRST BEING IN CONTROL
YOUNGEST    CONSIDER THE LAST BEING IN CONTROL 
")
               (PRIN1 

"SPEC:WHEN   AN EVALUATED VERSION OF 'WHEN'
FAIL   END THE INTERRUPT AND CAUSE CURRENT BEING TO FAIL
")
               (PRIN1 "NEW:LEVEL   CHANGE THE USER:INTERRUPT LEVEL
")
               (PRIN1 

"SPEC:WHY   PRINT OUT THE SPECIFIC REASON(S) THAT THIS BEING WAS
            CALLED. THIS DIFFERS FROM 'WHY' IN SENSE THAT SPEC:WHY IS
            THE REASON GIVEN BY THE CALLER, WHERAS WHY IS THE REASON
            STORED WITH THE CURRENT BEING PERMANENTLY.
")
               (MAPC SET:OF:BEING:PARTS (FUNCTION (LAMBDA (Y)
                         (PRIN1 Y)
                         (PRIN1 "   PRINT OUT ")
                         (PRIN1 Y)
                         (PRIN1 "  WITH RESPECT TO CURRENT BEING
"]
            (QUIT (COND
                    ((NOT EXPERTISE)
                      (PRIN1 "

END OF INTERRUPT

")))
                  (RETURN T))
            (FAIL (RETURN NIL))
            [SPEC:WHEN [PRINT (MAPCAR (GETP BC WHEN)
                                      (FUNCTION (LAMBDA (W)
                                          (TUPLE (CAR W)
                                                 IS
                                                 (SETQ W2
                                                   (EVAL (CAR W)))
                                                 SO WE
                                                 (COND
                                                   (W2 (QUOTE DO))
                                                   (T (QUOTE DONT)))
                                                 ADD
                                             IN THE WEIGHT
                                                (CADR W) WHICH
                                             IN THE CURRENT CASE IS
                                                (EVAL (CADR W)) ;THE 
                                                EXPLANATION IS
                                                (EVAL (CADDR W]
                       (PRINT (TUPLE THE FINAL WHEN VALUE IS THUS
                                                    (A:BEING:WHEN
                                                      BC]
            (BEING (PRINT BC))
            (CONTROL:HISTORY (PRIN1 BC1)
                             (PRIN1 " *** ")
                             (PRIN1 BC)
                             (PRIN1 " *** ")
                             (PRIN1 BC2)
                             (TERPRI))
            (DEMONS (PRIN1 CURRENT:DEMONS)
                    (PRIN1 "
THE DEMON STACK IS ")
                    (PRINT DEMON:STACK))
            (OLDER (SETQ BC1 (NCONC1 BC1 BC))
                   (SETQ BC (CAR BC2))
                   (SETQ BC2 (CDR BC2))
                   (PRINT BC))
            (NEW:LEVEL (NEW:LEVEL))
            (YOUNGER (SETQ BC2 (CONS BC BC2))
                     (SETQ BC (LAST BC1))
                     [SETQ BC1 (REVERSE (CDR (REVERSE BC1]
                     (PRINT BC))
            (OLDEST (SETQ BC (LAST BEING:STACK))
                    [SETQ BC1 (REVERSE (CDR (REVERSE BEING:STACK]
                    (SETQ BC2 NIL)
                    (PRINT BC))
            (YOUNGEST (SETQ BC (CAR BEING:STACK))
                      (SETQ BC2 (CDR BEING:STACK))
                      (SETQ BC1 NIL)
                      (PRINT BC))
            (COND
              [(MEMBER RESPONSE NON:EVAL:BEING:PARTS)
                (PRINT (OUTVECTOR (OUTTUPLE (GETP BC RESPONSE]
              [(MEMBER RESPONSE EVAL:BEING:PARTS)
                (PRINT (OUTVECTOR (EVAL (GETP BC RESPONSE]
              ((NLSETQ (PRINT (EVAL RESPONSE)))
                T)
              (T (PRIN1 
"


   *** ERROR ***  TYPE   ?      FOR ASSISTANCE   **********


")
                 (GO L]
          (GO L])

(PROGRAM:WRITING:DEMONS
  [LAMBDA NIL T])

(PSYCHOLOGY:DEMON
  [LAMBDA NIL T])

(PULLOUT
  [LAMBDA (E L)
    (COND
      ((ATOM L)
        L)
      ((EQUAL E (CAR L))
        (CDR L))
      (T (CONS (CAR L)
               (PULLOUT E (CDR L])

(PUSH:DEMONS
  [LAMBDA (NEW:DEMONS)
    (SETQ NEW:DEMO (SETDIFFERENCE NEW:DEMONS CURRENT:DEMONS))
    (SETQ DEMON:STACK (CONS CURRENT:DEMONS DEMON:STACK))
    (SETQ CURRENT:DEMONS (APPEND NEW:DEMO CURRENT:DEMONS))
    (SETQ DEMON:FLAG T])

(REINVESTIGATION:DEMON
  [LAMBDA NIL
    (MAPCAR DEFERRED:DECISION:LIST (FUNCTION (LAMBDA (D)
                (COND
                  ((EVAL (CADDDR D))
                    (REINVESTIGATE:DECISION D))
                  (T NOT:TIME:YET])

(REMOVE:EFFECTS
  [LAMBDA (B)
    (SETQ TEMPG (COPY (GETP B MAIN:EFFECTS)))
    (MAPC TEMPG (FUNCTION (LAMBDA (E)
              (SETQ EFFECTS:TABLE (PULLOUT E EFFECTS:TABLE])

(REMOVE:IDEN
  [LAMBDA (B)
    (SETQ TEMPG (COPY (GETP B IDEN)))
    (MAPC TEMPG (FUNCTION (LAMBDA (E)
              (SETQ IDEN:TABLE (PULLOUT E IDEN:TABLE])

(RESOLUTION:DEMON
  [LAMBDA NIL
    (MAPCAR DEFERRED:DECISION:LIST (FUNCTION (LAMBDA (D)
                (COND
                  ((EVAL (CADR D))
                    (RESOLVE:DECISION D))
                  (T NOT:TIME:YET])

(SEMI:COMPILE
  [LAMBDA (B)
    (EVAL
      (LIST
        (QUOTE DEFINEQ)
        (LIST
          B
          (APPEND
            (QUOTE [LAMBDA])
            [LIST (APPEND (GETP B EXPLICIT:ARGS)
                          (GETP B IMPLICIT:ARGS)
                          (QUOTE (FN:VALUE FINAL:CO:REQ BEING:FLAG 
                                           DEMON:FLAG]
            (LIST
              (LIST (QUOTE PROG1)
                    [APPEND (QUOTE (AND))
                            [LIST (LIST (QUOTE SETQ)
                                        (QUOTE BEING:STACK)
                                        (LIST (QUOTE CONS)
                                              B
                                              (QUOTE BEING:STACK]
                            (LIST (GETP B EXPLICIT:ARGS:CHECK))
                            [MAPCAR (GETP B PRE:REQUISITES)
                                    (FUNCTION (LAMBDA (X)
                                        (LIST SATISFY X]
                            (LIST (LIST (QUOTE PUSH:DEMONS)
                                        (GETP B DEMONS)))
                            (GETP B COMMENTS)
                            [MAPCAR (GETP B CO:REQUISITES)
                                    (FUNCTION (LAMBDA (X)
                                        (LIST TRY:TO:SATISFY
                                              (LIST (QUOTE QUOTE)
                                                    X]
                            (LIST (LIST (QUOTE PUT)
                                        B SPEC:WHY (QUOTE BECAUSE)))
                            [QUOTE ((NOT (MEMBER NIL
                                                 (MAPCAR 
                                              USER:INTERRUPT:DEMONS
                                                         (QUOTE APPLY*]
                            (LIST (LIST (QUOTE SETQ)
                                        (QUOTE FN:VALUE)
                                        (GETP B META:CODE)))
                            [QUOTE ((NOT (MEMBER NIL (MAPCAR 
                                                       FINAL:CO:REQ 
                                                            SATISFY]
                            (QUOTE ((POP:DEMONS)))
                            [MAPCAR (GETP B POST:REQUISITES)
                                    (FUNCTION (LAMBDA (X)
                                        (LIST SATISFY X]
                            [QUOTE ((SETQ BEING:FLAG T)
                                    (SETQ BEING:STACK (CDR BEING:STACK]
                            (COND
                              [(GETP B PREDICATE)
                                (QUOTE ((COND
                                          (FN:VALUE)
                                          (T FALSE]
                              (T (QUOTE (FN:VALUE]
                    (QUOTE (COND
                             ((NULL BEING:FLAG)
                               (SETQ BEING:STACK (CDR BEING:STACK))
                               (POP:DEMONS))
                             (DEMON:FLAG (POP:DEMONS])

(SET:UP:EFFECTS:TABLE
  [LAMBDA NIL
    (SETQ E:TABLE NIL)
    [MAPC SET:OF:BEINGS (FUNCTION (LAMBDA (B)
              (SETQ E:TABLE (APPEND E:TABLE (GETP B MAIN:EFFECTS]
    (SETQ EFFECTS:TABLE (COPY E:TABLE))
    (SORT EFFECTS:TABLE CAAR:ORDER)
    (LENGTH EFFECTS:TABLE])

(SET:UP:IDEN:TABLE
  [LAMBDA NIL
    (SETQ E:TABLE FUNDAMENTAL:IDEN:TABLE)
    [MAPC SET:OF:BEINGS (FUNCTION (LAMBDA (B)
              (SETQ E:TABLE (APPEND E:TABLE (GETP B IDEN]
    (SETQ IDEN:TABLE (COPY E:TABLE))
    (SORT IDEN:TABLE CAAR:ORDER)
    (LENGTH IDEN:TABLE])

(SETDIFFERENCE
  [LAMBDA (S1 S2)
    (COND
      ((NULL S1)
        NIL)
      (T (APPEND [COND
                   ((MEMBER (CAR S1)
                            S2)
                     NIL)
                   (T (LIST (CAR S1]
                 (SETDIFFERENCE (CDR S1)
                                S2])

(SETINTERSECTION
  [LAMBDA (S1 S2)
    (INTERSECTION S1 S2])

(SETUNION
  [LAMBDA (S1 S2)
    (SETQ S1 (APPEND S1 S2))
    (INTERSECTION S1 S1])

(SINGLETON
  [LAMBDA (S)
    (NULL (CDR S])

(SIZE
  [LAMBDA (STRUC)
    (ADD1 (IQUOTIENT (COUNT STRUC)
                     2])

(SPECIFICITY:CHECK:DEMON
  [LAMBDA (ANYTHING)
    (MAPC (SETDIFFERENCE PUP:WANTS:LIST IS:SPECIFIC:LIST)
          MAKE:SPECIFIC])

(START
  [LAMBDA (EXPERTISE)
    (PROG NIL
      L1  (SETQ BEING:STACK NIL)
          (SETQ BECAUSE (VECTOR))
          (SETQ FORCE:TRANSLATE NIL)
          (SETQ DEMON:STACK NIL)
          (SETQ CURRENT:DEMONS NIL)
          [MAPC ASSERT:LISTS (FUNCTION (LAMBDA (L)
                    (SET L NIL]
      L2  (COND
            (EXPERTISE (PRIN1 "USER INTERRUPT LEVEL... "))
            (T (PRIN1 

"HELLO THERE.  I AM READY TO START .

HOW OFTEN SHOULD I LET YOU INTERRRUPT ME, TO ASK ME ABOUT WHAT I'M
DOING?  TYPE A DIGIT, AS EXPLAINED BELOW:

0  NEVER (ULTIMATE PRODUCTION-RUN MODE)
2  A COUPLE OF TIMES DURING THE COURSE OF WRITING A PROGRAM
4  DURING EACH PHASE OF WRITING A PROGRAM
6  DURING THE WRITING OF EACH NONTRIVIAL SUBFUNCTION OF A PROGRAM
8  DURING EACH PHASE OF WRITING EACH SUBFUNCTION OF A PROGRAM
10 EACH TIME A BEING TRANSFERS CONTROL (ULTIMATE DEBUG MODE)

OK, NOW TYPE A DIGIT... ")))
      L   [SETQ PERMANENT:USER:INTERRUPT:DEMONS
            (SELECTQ (RATOM)
                     (0 (CLASS))
                     (2 (CLASS USER:INTERRUPT:AT:DEBUG 
                               USER:INTERRUPT:AT:END))
                     (4 (CLASS USER:INTERRUPT:AT:PHASES))
                     (6 (CLASS USER:INTERRUPT:AT:PHASES 
                               USER:INTERRUPT:AT:CODING))
                     (8 (CLASS USER:INTERRUPT:AT:PHASES 
                               USER:INTERRUPT:AT:CODING 
                               USER:INTERRUPT:AT:ADAPTING))
                     (10 (CLASS PERMIT:USER:INTERRUPT))
                     (AND (PRIN1 

"
***  ERROR  ***     YOU MUST TYPE ONE EVEN INTEGER FROM 0 TO 10
                      TRY   AGAIN:
")
                          (GO L]
          (SETQ USER:INTERRUPT:DEMONS PERMANENT:USER:INTERRUPT:DEMONS)
          (SETQ USER:INTERRUPT:COPY:OF:PHASES PROGRAM:WRITING:PHASES)
      L3  (SERVE)
      L4  (COND
            (EXPERTISE (PRIN1 

"

FINISHED CURRENT SERVICE; WHAT SHOULD I DO? TYPE ONE OF:

1   EXIT FROM SYSTEM
2   CONTINUE SERVING, AS BEFORE
3   CONTINUE SERVING, BUT GET A NEW USER INTERRUPT LEVEL
4   REINITIALIZE SYSTEM AND START FROM BEGINNING AGAIN

OK, GO .......... "))
            (T (PRIN1 
"

FINISHED SERVICE. 1 EXIT;  2 CONTINUE;  3 NEW LEVEL;  4 START OVER ")))
          (SELECTQ (RATOM)
                   (2 (GO L3))
                   (3 (GO L2))
                   (4 (GO L1))
                   (1 "EXITING SYSTEM")
                   (PRIN1 "NO, NO!!!!! ")
                   (GO L4])

(SUBSTITUTE
  [LAMBDA (NEW FOR OLD IN LIST:STRUCTURE)
    (SET LIST:STRUCTURE (SUBST NEW OLD (COPY (EVAL LIST:STRUCTURE])

(TRACE:COMPILE
  [LAMBDA (B)
    (EVAL
      (LIST
        (QUOTE DEFINEQ)
        (LIST
          B
          (APPEND
            (QUOTE [LAMBDA])
            [LIST (APPEND (GETP B EXPLICIT:ARGS)
                          (GETP B IMPLICIT:ARGS)
                          (QUOTE (FN:VALUE FINAL:CO:REQ BEING:FLAG 
                                           DEMON:FLAG]
            (LIST
              (LIST
                (QUOTE PROG1)
                [APPEND
                  (QUOTE (AND))
                  [LIST (LIST (QUOTE PRINT)
                              (LIST (QUOTE SETQ)
                                    (QUOTE BEING:STACK)
                                    (LIST (QUOTE CONS)
                                          B
                                          (QUOTE BEING:STACK]
                  (LIST (LIST (QUOTE PRINT)
                              (GETP B EXPLICIT:ARGS:CHECK)))
                  [MAPCAR (GETP B PRE:REQUISITES)
                          (FUNCTION (LAMBDA (X)
                              (LIST (QUOTE PRINT)
                                    (LIST SATISFY X]
                  [LIST (LIST (QUOTE PRINT)
                              (LIST (QUOTE PUSH:DEMONS)
                                    (GETP B DEMONS]
                  [MAPCAR (GETP B CO:REQUISITES)
                          (FUNCTION (LAMBDA (X)
                              (LIST (QUOTE PRINT)
                                    (LIST TRY:TO:SATISFY
                                          (LIST (QUOTE QUOTE)
                                                X]
                  (QUOTE ((PRINT "COMMENTS BEGINNING")))
                  (GETP B COMMENTS)
                  (QUOTE ((PRINT "COMMENTS ENDING")))
                  [LIST (LIST (QUOTE PRINT)
                              (LIST (QUOTE PUT)
                                    B SPEC:WHY (QUOTE BECAUSE]
                  (QUOTE ((PRIN1 "NOT1 ")))
                  [QUOTE ((NOT (MEMBER NIL (PRINT (MAPCAR 
                                              USER:INTERRUPT:DEMONS
                                                          (QUOTE APPLY*]
                  [LIST (LIST (QUOTE PRINT)
                              (LIST (QUOTE SETQ)
                                    (QUOTE FN:VALUE)
                                    (GETP B META:CODE]
                  (QUOTE ((PRIN1 "NOT2 ")))
                  [QUOTE ((NOT (MEMBER NIL (PRINT (MAPCAR FINAL:CO:REQ 
                                                          SATISFY]
                  [QUOTE ((PRINT (POP:DEMONS]
                  [MAPCAR (GETP B POST:REQUISITES)
                          (FUNCTION (LAMBDA (X)
                              (LIST (QUOTE PRINT)
                                    (LIST SATISFY X]
                  [QUOTE ((SETQ BEING:FLAG T)
                          (SETQ BEING:STACK (CDR (PRINT BEING:STACK]
                  (COND
                    [(GETP B PREDICATE)
                      (QUOTE ((PRINT (COND
                                       (FN:VALUE)
                                       (T FALSE]
                    (T (QUOTE ((PRINT FN:VALUE]
                [QUOTE (PRINT (TUPLE BEING:FLAG (@ BEING:FLAG)
                                     DEMON:FLAG
                                     (@ DEMON:FLAG]
                (QUOTE (PRINT (COND
                                ((NULL BEING:FLAG)
                                  (SETQ BEING:STACK (CDR BEING:STACK))
                                  (POP:DEMONS))
                                (DEMON:FLAG (POP:DEMONS])

(TRY:TO:SATISFY
  [LAMBDA (SUBGOAL)
    (COND
      ((SATISFY SUBGOAL)
        T)
      (T (SETQ FINAL:CO:REQ (CONS SUBGOAL FINAL:CO:REQ])

(TUPLE
  [NLAMBDA FORM
    (MAPCAR FORM (FUNCTION (LAMBDA (F1)
                (COND
                  ((ATOM F1)
                    F1)
                  (T (EVAL F1])

(USER:INTERRUPT:AT:ADAPTING
  [LAMBDA (S:EXP)
    (COND
      ((EQUAL B ADAPT:PRECONCEIVED:FUNCTION)
        (SETQ USER:INTERRUPT:DEMONS (PULLOUT USER:INTERRUPT:AT:ADAPTING 
                                             USER:INTERRUPT:DEMONS))
        (PERMIT:USER:INTERRUPT])

(USER:INTERRUPT:AT:CODING
  [LAMBDA (S:EXP)
    (COND
      ((EQUAL B ENCODE)
        (SETQ USER:INTERRUPT:DEMONS (PULLOUT USER:INTERRUPT:AT:CODING 
                                             USER:INTERRUPT:DEMONS))
        (PERMIT:USER:INTERRUPT])

(USER:INTERRUPT:AT:DEBUG
  [LAMBDA (S:EXP)
    (COND
      ((EQUAL B CLARIFY:IMPROBABLE:SITUATION)
        (SETQ USER:INTERRUPT:DEMONS (PULLOUT USER:INTERRUPT:AT:DEBUG 
                                             USER:INTERRUPT:DEMONS))
        (PERMIT:USER:INTERRUPT])

(USER:INTERRUPT:AT:END
  [LAMBDA (S:EXP)
    (COND
      ((EQUAL B OPTIMIZE)
        (SETQ USER:INTERRUPT:DEMONS (PULLOUT USER:INTERRUPT:AT:END 
                                             USER:INTERRUPT:DEMONS))
        (PERMIT:USER:INTERRUPT])

(USER:INTERRUPT:AT:PHASES
  [LAMBDA (S:EXP)
    (COND
      ((MEMBER B USER:INTERRUPT:COPY:OF:PHASES)
        (SETQ USER:INTERRUPT:COPY:OF:PHASES (PULLOUT B 
                                      USER:INTERRUPT:COPY:OF:PHASES))
        (PERMIT:USER:INTERRUPT])

(VECTOR
  [NLAMBDA FORM
    (CONS VECTOR (MAPCAR FORM (FUNCTION (LAMBDA (F1)
                             (COND
                               ((ATOM F1)
                                 F1)
                               (T (EVAL F1])

(WHEN:VALUE
  [LAMBDA (B:CALL)
    (SETQ EXP:A (GETP (CAR B:CALL)
                      EXPLICIT:ARGS))
    [MAP2C EXP:A (CDR B:CALL)
           (FUNCTION (LAMBDA (NEWARG OLDARG)
               (SET NEWARG OLDARG]
    (COND
      ((EVAL (GETP (CAR B:CALL)
                   EXPLICIT:ARGS:CHECK))
        (A:BEING:WHEN (CAR B:CALL)))
      (T -1000])
)
  (LISPXPRINT (QUOTE PUP5FNS)
              T)
  (RPAQQ PUP5FNS
         (@ A:BEING:ORDER A:BEING:WHEN AD ADD:BEING ADD:EFFECTS 
            ADD:IDEN ASSERTIONS ATTENTION:DEMONS CAAR:ORDER CAR:ORDER 
            CHANGEB CHANGEP CLASS COLON:BACK COLON:BREAK CSORT 
            DEFERRAL:DEMON DIMENSION1 DIMENSION2 DIMENSION3 DISK:DUMP 
            DOT:PROD DUMP:BEING ENCODE FAD FAST:BEING:COMPLEX 
            FILL:IN:UNDEFINED:SECTION FIRST:FEW FIRSTN FLATTEN FOREACH 
            FOREVER FRINGE:OF:CONCIOUSNESS:DEMON IDIOM:DEMON 
            INFERENCE:DEMONS INITIALS INVECTOR LUMP:ASSERTIONS MAD 
            MAIN:WORDS MAKE:SPECIFIC MATCH MINIMUM MOVE:BEING 
            MULT:INTERSECTION NEW:IDEN NEW:LEVEL OUTNIL OUTQUOTE 
            OUTTUPLE OUTVECTOR PERMIT:USER:INTERRUPT POP:DEMONS 
            PROCEDURE:INTERSECTION PROCEDURE:SUBSET 
            PROCESS:USER:INTERRUPT PROGRAM:WRITING:DEMONS 
            PSYCHOLOGY:DEMON PULLOUT PUSH:DEMONS REINVESTIGATION:DEMON 
            REMOVE:EFFECTS REMOVE:IDEN RESOLUTION:DEMON SEMI:COMPILE 
            SET:UP:EFFECTS:TABLE SET:UP:IDEN:TABLE SETDIFFERENCE 
            SETINTERSECTION SETUNION SINGLETON SIZE 
            SPECIFICITY:CHECK:DEMON START SUBSTITUTE TRACE:COMPILE 
            TRY:TO:SATISFY TUPLE USER:INTERRUPT:AT:ADAPTING 
            USER:INTERRUPT:AT:CODING USER:INTERRUPT:AT:DEBUG 
            USER:INTERRUPT:AT:END USER:INTERRUPT:AT:PHASES VECTOR 
            WHEN:VALUE))
  (LISPXPRINT (QUOTE PUP5VARS)
              T)
  [RPAQQ PUP5VARS
         (ALTERNATIVES:DEFER:DECISION:KNOWLEDGE
           APPLIED:SO:AS:TO:KEEP ASSERT:LISTS BEING BREAKUP:LIST UNTIL 
           FUNDAMENTAL:IDEN:TABLE SINCE FOREVER PRIMITIVE:PROGRAMS:LIST 
           PRIMITIVE:VARS:LIST Y N NOT:TIME:YET CALL 
           COMPILABLE:BEING:PARTS EFFECTS:TABLE EVAL PARTS 
           EVAL:BEING:PARTS FALSE IDEN:TABLE INFERIOR MINOR:WORDS NAME 
           NON:EVAL:BEING:PARTS NON:EXECUTABLE PERMANENT:KNOWN:NAMES 
           PROGRAM:WRITING:PHASES SET:OF:BEING:PARTS SET:OF:BEINGS 
           SUPERIOR (COMS * (LIST (APPEND (QUOTE (PROP ALL))
                                          SET:OF:BEINGS)))
           [P (MAPC (APPEND PUP5FNS SET:OF:BEINGS SET:OF:BEING:PARTS)
                    (FUNCTION (LAMBDA (V)
                                      (SET V V]
           (P (MAPC SET:OF:BEINGS SEMI:COMPILE)
              (PRIN1 
    "  MINI PUP FILE:  USE FAD OR AD OR MAKEFILE FOR NEW VERSION  "]
  [RPAQQ ALTERNATIVES:DEFER:DECISION:KNOWLEDGE
         ((COND ([AND [NOT (MEMBER NIL (MAPCAR (SETQ C (CADR DEC))
                                               (FUNCTION
                                                 (LAMBDA (D)
                                                         (GETP D BEING]
                      (SETQ PROC (PROCEDURE:INTERSECTION
                              (MAPCAR C (FUNCTION (LAMBDA (D)
                                                          (GETP D 
                                                          META:CODE]
                 (SETQ TYPE:OF:LIST (CONS (VECTOR (LAST DEC)
                                                  IS
                                                  (VECTOR TEMPORARILY
                                                          (@ PROC)))
                                          TYPE:OF:LIST))
                 (RETURN (TUPLE PROCEDURE:SUBSET (@ PROC)
                                ABLE:PUP:LIST)))
                (T T]
  (RPAQQ APPLIED:SO:AS:TO:KEEP APPLIED:SO:AS:TO:KEEP)
  (RPAQQ ASSERT:LISTS
         (ABLE:PUP:LIST ABLE:USER:LIST ATTEMPTING:ANYTHING:LIST 
                        ATTEMPTING:SOMETHING:LIST AWARE:PUP:LIST 
                        AWARE:USER:LIST EXECUTABLE:INFO:LIST 
                        IS:SPECIFIC:LIST RESOLVED:DECISION:LIST 
                        KNOWN:NAMES NAMED:EXPRESSION:LIST NEW:INFO:LIST 
                        PLAUSIBLE:NAMES:LIST PUP:SATISFIED:LIST 
                        PUP:STUDIED:LIST PUP:WANTED:LIST PUP:WANTS:LIST 
                        READ:USER:LIST RELEVANT:INFO:LIST 
                        TRANSLATED:INFO:LIST TRANSLATED:PAIR:LIST 
                        TYPE:OF:LIST UNDEFERRED:DECISION:LIST 
                        USABLE:INFO:LIST USER:WANTS:LIST 
                        WRITTEN:PROGRAMS:LIST DEFERRED:DECISION:LIST 
                        UNDEFINED:SECTION:LIST))
  (RPAQQ BEING BEING)
  (RPAQQ BREAKUP:LIST (: ; %. , - ?))
  (RPAQQ UNTIL UNTIL)
  [RPAQQ FUNDAMENTAL:IDEN:TABLE
         (((MEMBER (CAR LI)
                   (QUOTE (AND OR NOT EQUAL LESSP GREATERP MINUSP)))
           (APPEND (VECTOR (CAR LI))
                   (MAPCAR (CDR LI)
                           TRANSLATE)))
          ((EQUAL (CAR LI)
                  (QUOTE COND))
           (APPEND (VECTOR COND)
                   (MAPCAR (CDR LI)
                           (FUNCTION (LAMBDA (L)
                                             (MAPCAR L TRANSLATE]
  (RPAQQ SINCE SINCE)
  (RPAQQ FOREVER FOREVER)
  (RPAQQ PRIMITIVE:PROGRAMS:LIST
         (AND OR NOT COND MAPC MAPCAR LAMBDA FUNCTION PLUS TIMES LIST 
              APPEND CONS CAR CDR CADR CADDR CADDDR CADAR PLUS MINUS 
              MINUSP TIMES QUOTIENT ADD1 SUB1 SET SETQ NULL QUOTE EVAL 
              LESSP EQUAL))
  (RPAQQ PRIMITIVE:VARS:LIST
         (T NIL 0 1 2 3 4 5 6 7 8 9 10 -1 -2 -3))
  (RPAQQ Y NOBIND)
  (RPAQQ N 2)
  (RPAQQ NOT:TIME:YET NOT:TIME:YET)
  (RPAQQ CALL CALL)
  (RPAQQ COMPILABLE:BEING:PARTS
         (META:CODE COMMENTS PRE:REQUISITES CO:REQUISITES 
                    POST:REQUISITES EXPLICIT:ARGS EXPLICIT:ARGS:CHECK 
                    IMPLICIT:ARGS DEMONS))
  [RPAQQ EFFECTS:TABLE (((VECTOR ABLE PUP ANY1)
           (VECTOR WRITE:PROGRAM (@ ANY1)))
          ((VECTOR ABLE PUP (VECTOR LEARN CONCEPTS))
           (VECTOR CONCEPT:FORMATION))
          ((VECTOR ABLE PUP (VECTOR REFER ANY1 AS ANY2))
           (VECTOR GET:NAME (@ ANY1)
                   (@ ANY2)))
          ((VECTOR ABLE USER ANY1)
           (VECTOR WRITE:PROGRAM (@ ANY1)))
          ((VECTOR ABLE USER (VECTOR REFER ANY1 AS ANY2))
           (VECTOR GET:NAME (@ ANY1)
                   (@ ANY2)))
          ((VECTOR ATTEMPTING ANYTHING)
           (VECTOR SERVE))
          ((VECTOR ATTEMPTING SOMETHING)
           (VECTOR SERVE))
          [(VECTOR AWARE ANY1 (DELAYABLE ANY2))
           (VECTOR WHEN:NEXT (VECTOR (@ ANY1)
                                     (CADR ANY2)
                                     (CADDR ANY2]
          ((VECTOR AWARE PUP (VECTOR IMPLICATIONS ANY1))
           (VECTOR ANALYZE:IMPLICATIONS (@ ANY1)))
          ((VECTOR AWARE USER ANY1)
           (VECTOR MESSAGE (@ ANY1)))
          ((VECTOR DEFERRED DECISION ANY1)
           (VECTOR DEFER:DECISION (@ ANY1)))
          ((VECTOR NAMED EXPRESSION ANY1 ANY2)
           (VECTOR GET:NAME (@ ANY1)
                   (@ ANY2)))
          ((VECTOR NEW INFO ANY1)
           (VECTOR GET:NEW:INFORMATION (TUPLE QUOTE ANY1)))
          ((VECTOR NEW INFO ANY1)
           (VECTOR OBTAIN:USABLE:INFORMATION (@ ANY1)))
          ((VECTOR PLAUSIBLE NAMES (VECTOR FOR ANY1 HAVE BEEN STUDIED))
           (VECTOR PROPOSE:PLAUSIBLE:NAMES (@ ANY1)))
          ((VECTOR PUP SATISFIED ANY1)
           (VECTOR SATISFY (@ ANY1)))
          ((VECTOR PUP STUDIED (VECTOR PLAUSIBLE NAMES FOR ANY1))
           (VECTOR PROPOSE:PLAUSIBLE:NAMES (@ ANY1)))
          ((VECTOR PUP STUDIED (VECTOR TYPE OF ANY1))
           (VECTOR STUDY:TYPE (@ ANY1)))
          ((VECTOR READ USER ANY1)
           (VECTOR MESSAGE (@ ANY1)))
          ((VECTOR RELEVANT INFO ANY1)
           (VECTOR EXTRACT:RELEVANT:SUBSET (@ ANY1)))
          [(VECTOR RESOLVED DECISION ANY1)
           (VECTOR RESOLVE:DECISION (VECTOR (VECTOR BECAUSE OF DIRECT 
                                                    COMMAND)
                                            (@ D]
          [(VECTOR RESOLVED DECISION ANY1)
           (VECTOR RESOLVE:DECISION (VECTOR (VECTOR BECAUSE OF DIRECT 
                                                    COMMAND)
                                            (@ D]
          ((VECTOR TRANSLATED INFO ANY1)
           (VECTOR TRANSLATE (@ ANY1)))
          ((VECTOR TYPE OF (VECTOR ANY1 HAS BEEN STUDIED))
           (VECTOR STUDY:TYPE (@ ANY1)))
          ((VECTOR USABLE INFO ANY1)
           (VECTOR OBTAIN:USABLE:INFORMATION (@ ANY1)))
          ((VECTOR USABLE INFO (VECTOR NEW INFO ANY1))
           (VECTOR TRANSLATE (@ ANY1)))
          ((VECTOR WRITTEN PROGRAMS ANY1)
           (VECTOR WRITE:PROGRAM (@ ANY1]
  (RPAQQ EVAL EVAL)
  (RPAQQ PARTS PARTS)
  (RPAQQ EVAL:BEING:PARTS (WHAT HOW WHY AFFECTS SPEC:WHY PREDICATE))
  (RPAQQ FALSE FALSE)
  [RPAQQ IDEN:TABLE (((AND (EQUAL (CAR LI)
                                  ANALYZE:IMPLICATIONS)
                           (EQUAL (LENGTH (CDR LI))
                                  1))
           (VECTOR ANALYZE:IMPLICATIONS (TRANSLATE (CADR LI)
                                                   T)))
          ((AND (EQUAL (CAR LI)
                       BETTER)
                (EQUAL (LENGTH LI)
                       3))
           (VECTOR BETTER (TRANSLATE (CADR LI)
                                     T)
                   (TRANSLATE (CADDR LI)
                              T)))
          ((AND (EQUAL (CAR LI)
                       CALL)
                (EQUAL (LENGTH LI)
                       3))
           (VECTOR GET:NAME (CADR LI)
                   (CADDR LI)))
          [(AND (EQUAL (CAR LI)
                       CHOOSE:FROM)
                (EQUAL (LENGTH LI)
                       2))
           (VECTOR CHOOSE:FROM (MAPCAR (CADR LI)
                                       (FUNCTION (LAMBDA (Y)
                                                         (TRANSLATE
                                                           Y T]
          ((AND (EQUAL (CAR LI)
                       DEFER:DECISION)
                (EQUAL (LENGTH LI)
                       2))
           (VECTOR DEFER:DECISION (CADR LI)))
          ((AND (EQUAL (CAR LI)
                       EXTRACT:RELEVANT:SUBSET)
                (EQUAL (LENGTH LI)
                       2))
           (VECTOR EXTRACT:RELEVANT:SUBSET (TRANSLATE (CADR LI)
                                                      T)))
          ((AND (EQUAL (CAR LI)
                       GET:NEW:INFORMATION)
                (EQUAL (LENGTH LI)
                       2))
           (VECTOR GET:NEW:INFORMATION (CADR LI)))
          ((AND (EQUAL (CAR LI)
                       MESSAGE)
                (EQUAL (LENGTH LI)
                       2))
           (VECTOR MESSAGE (CADR LI)))
          ((AND (EQUAL (CAR LI)
                       NAME)
                (EQUAL (LENGTH LI)
                       3))
           (VECTOR GET:NAME (CADR LI)
                   (CADDR LI)))
          ((AND (EQUAL (CAR LI)
                       OBTAIN:USABLE:INFORMATION)
                (EQUAL (LENGTH LI)
                       2))
           (VECTOR OBTAIN:USABLE:INFORMATION (CADR LI)))
          ((AND (EQUAL (CAR LI)
                       PROPOSE:PLAUSIBLE:NAMES)
                (EQUAL (LENGTH LI)
                       2))
           (VECTOR PROPOSE:PLAUSIBLE:NAMES (CADR LI)))
          ((AND (EQUAL (CAR LI)
                       RESOLVE:DECISION)
                (EQUAL (LENGTH LI)
                       2))
           (VECTOR RESOLVE:DECISION (CADR LI)))
          ((AND (EQUAL (CAR LI)
                       RESOLVE:DECISION)
                (EQUAL (LENGTH LI)
                       2))
           (VECTOR RESOLVE:DECISION (CADR LI)))
          ((AND (EQUAL (CAR LI)
                       SATISFY)
                (EQUAL (LENGTH LI)
                       2))
           (VECTOR SATISFY (TRANSLATE (CADR LI)
                                      T)))
          ((AND (EQUAL (CAR LI)
                       TRANSLATE T)
                (EQUAL (LENGTH LI)
                       2))
           (VECTOR TRANSLATE (CADR LI)))
          ((AND (EQUAL (CAR LI)
                       UTILIZE)
                (EQUAL (LENGTH LI)
                       4))
           (VECTOR UTILIZE (TRANSLATE (CADR LI))
                   (CADDR LI)
                   (CADDDR LI)))
          ((AND (EQUAL (CAR LI)
                       WRITE:PROGRAM)
                (EQUAL (LENGTH LI)
                       2))
           (VECTOR WRITE:PROGRAM (TRANSLATE (CADR LI)
                                            T)))
          ((EQUAL LI (QUOTE (FILL:IN:UNDEFINED:SECTION)))
           (VECTOR FILL:IN:UNDEFINED:SECTION (CADR LI)))
          ((EQUAL LI (QUOTE (SERVE)))
           (VECTOR SERVE))
          ((EQUAL (CAR LI)
                  FILL:IN:UNDEFINED:SECTION)
           (VECTOR FILL:IN:UNDEFINED:SECTION (CADR LI)))
          ((MATCH (QUOTE (DEFER THE DECISION ANY1))
                  LI)
           (VECTOR DEFER:DECISION (@ ANY1)))
          ((MATCH (QUOTE (ENCODE ANY1))
                  LI)
           (CONS VECTOR LI))
          ((MATCH (QUOTE (PROPOSE PLAUSIBLE NAMES FOR ANY1))
                  LI)
           (VECTOR PROPOSE:PLAUSIBLE:NAMES (CADR LI)))
          [(MATCH (QUOTE (RESOLVE THE DECISION ANY1))
                  LI)
           (VECTOR RESOLVE:DECISION (VECTOR (VECTOR BECAUSE OF DIRECT 
                                                    COMMAND)
                                            (@ ANY1]
          [(MATCH (QUOTE (RESOLVE THE DECISION ANY1))
                  LI)
           (VECTOR RESOLVE:DECISION (VECTOR (VECTOR BECAUSE OF DIRECT 
                                                    COMMAND)
                                            (@ ANY1]
          ((MATCH (QUOTE (STUDY:TYPE ANY1))
                  LI)
           (VECTOR STUDY:TYPE (CADR LI)))
          ((MATCH (QUOTE (THE NEXT TIME (VECTOR ANY1 ANY2 ANY3)))
                  LI)
           (VECTOR WHEN:NEXT (CADDDR LI)))
          ((MATCH (QUOTE (WHEN:NEXT (VECTOR ANY1 ANY2 ANY3)))
                  LI)
           (VECTOR WHEN:NEXT (CADR LI)))
          ((MATCH (QUOTE (WRITE A PROGRAM WHICH DOES FRAG1))
                  LI)
           (VECTOR WRITE:PROGRAM (TRANSLATE (INVECTOR FRAG1)
                                            T)))
          ([MEMBER LI (QUOTE ((CONCEPT FORMATION)
                              (CONCEPT:FORMATION)
                              (CONCEPT LEARNING)
                              (FORM CONCEPTS)
                              (LEARN CONCEPTS)
                              (LEARNS CONCEPTS)
                              (FORMS CONCEPTS]
           (VECTOR CONCEPT:FORMATION]
  (RPAQQ INFERIOR INFERIOR)
  (RPAQQ MINOR:WORDS
         (A AT DO DOES FOR IN PROGRAM THE TO WHICH WHILE WRITE))
  (RPAQQ NAME NAME)
  (RPAQQ NON:EVAL:BEING:PARTS
         (IDEN IMPLICIT:ARGS EXPLICIT:ARGS WHEN META:CODE COMMENTS 
               PRE:REQUISITES CO:REQUISITES POST:REQUISITES 
               EXPLICIT:ARGS:CHECK DEMONS MAIN:EFFECTS MINOR:EFFECTS 
               COMPLEXITY:VECTOR GENERALIZATIONS SPECIALIZATIONS 
               ALTERNATIVES))
  (RPAQQ NON:EXECUTABLE NON:EXECUTABLE)
  (RPAQQ PERMANENT:KNOWN:NAMES NIL)
  (RPAQQ PROGRAM:WRITING:PHASES (OBTAIN:USABLE:INFORMATION 
                                                    USE:INFORMATION 
                                          FILL:IN:UNDEFINED:SECTION 
                                         ADAPT:PRECONCIVED:FUNCTION 
                                       CLARIFY:IMPROBABLE:SITUATION 
                                                FIX:INCORRECT:PIECE 
                                                           OPTIMIZE))
  (RPAQQ SET:OF:BEING:PARTS
         (IDEN IMPLICIT:ARGS EXPLICIT:ARGS EXPLICIT:ARGS:CHECK WHAT HOW 
               WHY SPEC:WHY MAIN:EFFECTS MINOR:EFFECTS WHEN META:CODE 
               COMMENTS PRE:REQUISITES CO:REQUISITES POST:REQUISITES 
               DEMONS AFFECTS COMPLEXITY:VECTOR GENERALIZATIONS 
               SPECIALIZATIONS ALTERNATIVES PREDICATE))
  (RPAQQ SET:OF:BEINGS
         (ENCODE FILL:IN:UNDEFINED:SECTION UTILIZE ANALYZE:IMPLICATIONS 
                 BETTER CHOOSE:FROM CONCEPT:FORMATION DEFER:DECISION 
                 EXTRACT:RELEVANT:SUBSET GET:NAME GET:NEW:INFORMATION 
                 MESSAGE OBTAIN:USABLE:INFORMATION 
                 PROPOSE:PLAUSIBLE:NAMES REINVESTIGATE:DECISION 
                 RESOLVE:DECISION SATISFY SERVE STUDY:TYPE TRANSLATE 
                 WHEN:NEXT WRITE:PROGRAM))
  (RPAQQ SUPERIOR SUPERIOR)
  (PUTPROPS ENCODE BEING T
                   IDEN (((MATCH (QUOTE (ENCODE ANY1))
                                 LI)
                          (CONS VECTOR LI)))
                   IMPLICIT:ARGS (FNAME FDESC F1 CODE)
                   EXPLICIT:ARGS (FUNC)
                   EXPLICIT:ARGS:CHECK (AND (MATCH (VECTOR
                                                     (VECTOR FRAG1)
                                                     NAME ANY1 FRAG2 
                                                     ANY2)
                                                   FUNC)
                                            (SETQ FDESC FRAG1)
                                            (SETQ FNAME ANY1)
                                            (SETQ BNAME ANY2))
                   WHAT (VECTOR ENCODE A FUNCTION NAMED (@ FNAME)
                                TO ACCOMPLISH (@ BNAME)
                                BY USING, AMONG OTHER FACTS,
                                (@ FDESC))
                   HOW (VECTOR DEFINE (@ FNAME)
                               USING
                               (@ FDESC))
                   WHY (VECTOR (@ FNAME)
                               IS CURRENTLY UNDEFINED)
                   SPEC:WHY (QUOTE (NO SPECIAL REASON))
                   MAIN:EFFECTS NIL
                   MINOR:EFFECTS NIL
                   WHEN NIL
                   META:CODE [PROGN
                               (SETQ F1 (CADR FDESC))
                               [MAPC TYPE:OF:LIST
                                     (FUNCTION
                                       (LAMBDA (PC)
                                               (COND
                                                 ((MATCH (VECTOR F1 IS 
                                                              FRAG1)
                                                         PC)
                                                  (SETQ CODE FRAG1]
                               [COND ((NULL CODE)
                                      (SETQ CODE (GETP F1 META:CODE]
                               [SETQ UNDEFINED:SECTION:LIST
                                     (SETUNION
                                       UNDEFINED:SECTION:LIST
                                       (SETDIFFERENCE
                                         (OUTNIL (FLATTEN CODE))
                                         (APPEND WRITTEN:PROGRAMS:LIST 
                                                 PUP5FNS 
                                            PRIMITIVE:PROGRAMS:LIST 
                                                PRIMITIVE:VARS:LIST 
                                                 SET:OF:BEINGS 
                                                 SET:OF:BEING:PARTS 
                                                 PUP5VARS]
                               (EVAL
                                 (LIST
                                   (QUOTE DEFINEQ)
                                   (LIST
                                     FNAME
                                     (APPEND
                                       (LIST
                                         (QUOTE LAMBDA)
                                         (APPEND (GETP (CAR FDESC)
                                                       EXPLICIT:ARGS)
                                                 (GETP (CAR FDESC)
                                                       IMPLICIT:ARGS)))
                                       CODE]
                   COMMENTS NIL
                   PRE:REQUISITES NIL
                   CO:REQUISITES NIL
                   POST:REQUISITES NIL
                   DEMONS NIL
                   AFFECTS NIL
                   COMPLEXITY:VECTOR (.5 .5 .5 .5)
                   GENERALIZATIONS NIL
                   SPECIALIZATIONS NIL
                   ALTERNATIVES NIL
                   PREDICATE NIL)
  (PUTPROPS FILL:IN:UNDEFINED:SECTION BEING T
                                      IDEN [((EQUAL (CAR LI)
                                                    
                                          FILL:IN:UNDEFINED:SECTION)
                                             (VECTOR 
                                          FILL:IN:UNDEFINED:SECTION
                                                     (CADR LI]
                                      IMPLICIT:ARGS (CHOICE)
                                      EXPLICIT:ARGS (PROGRAM)
                                      EXPLICIT:ARGS:CHECK 
                                             UNDEFINED:SECTION:LIST
                                      WHAT (VECTOR FILL IN AN UNDEFINED 
                                                   SECTION OF CODE AND 
                                                   ADD IT TO THE 
                                                   PROGRAM
                                                   (@ PROGRAM))
                                      HOW (VECTOR CHOOSE THE SIMPLEST 
                                                  UNDEFINED PIECE AND 
                                                  ENCODE IT)
                                      WHY (VECTOR BECAUSE ALL PIECES OF 
                                                  CODE MUST BE DEFINED 
                                                  OR THE PROGRAM WONT 
                                                  RUN)
                                      SPEC:WHY (QUOTE (NO SPECIAL 
                                                          REASON))
                                      MAIN:EFFECTS NIL
                                      MINOR:EFFECTS NIL
                                      WHEN ((UNDEFINED:SECTION:LIST
                                              80
                                              (TUPLE BECAUSE 
                                             UNDEFINED:SECTION:LIST 
                                                     CONTAINS PIECES OF 
                                                     CODE AS YET 
                                                     UNDEFINED))
                                            ((NULL 
                                             UNDEFINED:SECTION:LIST)
                                             -1000
                                             (TUPLE BECAUSE NO PIECES 
                                                    OF CODE ARE KNOWN 
                                                    AND YET NOT YET 
                                                    DEFINED)))
                                      META:CODE (COND
                                                  ((SETQ
                                                     PROGRAM
                                                     (APPEND
                                                       PROGRAM
                                                       (ENCODE CHOICE)))
                                                   (SETQ 
                                             UNDEFINED:SECTION:LIST
                                                         (PULLOUT
                                                           CHOICE 
                                             UNDEFINED:SECTION:LIST))
                                                   T)
                                                  (T
                                                    [PUT
                                                      CHOICE 
                                                  COMPLEXITY:VECTOR
                                                      (APPEND
                                                        [LIST
                                                          (DIMENSION1
                                                            CHOICE)
                                                          (PLUS
                                                            .6
                                                            (TIMES
                                                              .4
                                                              (
DIMENSION2 CHOICE]
                                                        (CDDR
                                                          (GETP CHOICE 
                                                  COMPLEXITY:VECTOR]
                                                    NIL))
                                      COMMENTS ((SETQ CHOICE
                                                      (MINIMUM 
                                             UNDEFINED:SECTION:LIST 
                                                 FAST:BEING:COMPLEX)))
                                      PRE:REQUISITES NIL
                                      CO:REQUISITES ((VECTOR
                                                       TYPE OF
                                                       (VECTOR
                                                         (@ CHOICE)
                                                         HAS BEEN 
                                                         STUDIED)))
                                      POST:REQUISITES NIL
                                      DEMONS NIL
                                      AFFECTS (QUOTE ((ENCODE CALLED)))
                                      COMPLEXITY:VECTOR (.5 .5 .5 .5)
                                      GENERALIZATIONS NIL
                                      SPECIALIZATIONS NIL
                                      ALTERNATIVES NIL
                                      PREDICATE NIL)
  (PUTPROPS UTILIZE BEING T
                    IDEN [((AND (EQUAL (CAR LI)
                                       UTILIZE)
                                (EQUAL (LENGTH LI)
                                       4))
                           (VECTOR UTILIZE (TRANSLATE (CADR LI))
                                   (CADDR LI)
                                   (CADDDR LI]
                    IMPLICIT:ARGS (KNOW:LIST DEC)
                    EXPLICIT:ARGS (KNOW:NAME APPLIED:SO:AS:TO:KEEP 
                                             INVARIANT)
                    EXPLICIT:ARGS:CHECK (AND
                                          (EQUAL (CAR INVARIANT)
                                                 VECTOR)
                                          (MEMBER (CADR INVARIANT)
                                                  (QUOTE (RELEVANT
                                                           IRRELEVANT)))
                                          (ATOM KNOW:NAME)
                                          (LISTP (EVAL KNOW:NAME)))
                    WHAT (TUPLE USE THE LIST (@ KNOW:LIST)
                                OF INFORMATION TO DECIDE THE TURNING 
                                POINT OF THE TRUTH OF THE PREDICATE
                                (@ INVARIANT))
                    HOW (TUPLE SEARCH THROUGH (@ KNOW:LIST)
                               FOR APPLICABLE RULES)
                    WHY (TUPLE SO PUP KNOWS WHEN (@ INVARIANT)
                               CHANGES TRUTH VALUE)
                    SPEC:WHY (QUOTE (NO SPECIAL REASON))
                    MAIN:EFFECTS NIL
                    MINOR:EFFECTS NIL
                    WHEN NIL
                    META:CODE [PROG
                                (AF)
                                (COND
                                  [(MATCH (VECTOR PUP REINVESTIGATE 
                                                  FRAG1)
                                          INVARIANT)
                                   (COND
                                     ((SETQ AF (CADR (MEMBER WHEN DEC)))
                                      (RETURN (EVAL AF)))
                                     [(SETQ AF (CADR (MEMBER AFFECTS 
                                                             DEC)))
                                      (MAPC
                                        KNOW:LIST
                                        (FUNCTION
                                          (LAMBDA
                                            (K)
                                            (COND
                                              ((MATCH
                                                 (VECTOR AFFECTS
                                                         (@ AF)
                                                         ANY1)
                                                 K)
                                               (RETURN (EVAL ANY1]
                                     [(MAPC KNOW:LIST
                                            (FUNCTION
                                              (LAMBDA
                                                (K)
                                                (COND ((SETQ
                                                         AF
                                                         (EVAL K))
                                                       (RETURN AF]
                                     (T (RETURN NIL]
                                  (T (RETURN NIL]
                    COMMENTS ((SETQ KNOW:LIST (EVAL KNOW:NAME)))
                    PRE:REQUISITES NIL
                    CO:REQUISITES NIL
                    POST:REQUISITES NIL
                    DEMONS NIL
                    AFFECTS NIL
                    COMPLEXITY:VECTOR (.5 .5 .5 .5)
                    GENERALIZATIONS NIL
                    SPECIALIZATIONS NIL
                    ALTERNATIVES NIL
                    PREDICATE NIL)
  (PUTPROPS ANALYZE:IMPLICATIONS IDEN [((AND
                                          (EQUAL (CAR LI)
                                                 ANALYZE:IMPLICATIONS)
                                          (EQUAL (LENGTH (CDR LI))
                                                 1))
                                        (VECTOR ANALYZE:IMPLICATIONS
                                                (TRANSLATE
                                                  (CADR LI)
                                                  T]
                                 BEING T
                                 IMPLICIT:ARGS NIL
                                 EXPLICIT:ARGS (NEW:INFO)
                                 WHAT (TUPLE ANALYZE THE IMPLICATIONS 
                                             OF SOME OF THE NEW 
                                             INFORMATION (@ NEW:INFO))
                                 HOW (TUPLE BY LOCALIZING THE EFFECTS 
                                            OF THE NEW INFO AND 
                                            STUDYING THEM)
                                 WHY (TUPLE TO IMPROVE THE 
                                            UNDERSTANDING THAT PUP HAS 
                                            OF THE NEW INFORMATION
                                            (@ NEW:INFO))
                                 SPEC:WHY (QUOTE (NO SPECIAL REASON))
                                 WHEN (((SETQ ANY1 (CAR 
                                                   USABLE:INFO:LIST))
                                        -60
                                        (TUPLE BECAUSE WE SHOULD USE
                                               (@ ANY1)
                                               BEFORE WORRYING ABOUT
                                               (@ NEW:INFO)))
                                       (T (DIFFERENCE 50 (SIZE NEW:INFO)
                                                      )
                                          (TUPLE BECAUSE THE SIZE OF 
                                                 THE NEW INFORMATION
                                                 (@ NEW:INFO)
                                                 AFFECTS HOW EASILY AND 
                                                 FRUITFULLY AN ANALYSIS 
                                                 OF IT WILL BE)))
                                 META:CODE (PROGN (LOCATE:AFFECTED:AREA
                                                    NEW:INFO)
                                                  (PREDICT:AFFECT
                                                    NEW:INFO)
                                                  (EVALUATE:AFFECT
                                                    NEW:INFO))
                                 COMMENTS NIL
                                 PRE:REQUISITES NIL
                                 CO:REQUISITES NIL
                                 POST:REQUISITES NIL
                                 EXPLICIT:ARGS:CHECK (MEMBER NEW:INFO 
                                                 RELEVANT:INFO:LIST)
                                 DEMONS NIL
                                 MAIN:EFFECTS [((VECTOR AWARE PUP
                                                        (VECTOR 
                                                       IMPLICATIONS 
                                                               ANY1))
                                                (VECTOR 
                                               ANALYZE:IMPLICATIONS
                                                        (@ ANY1]
                                 MINOR:EFFECTS NIL
                                 AFFECTS (QUOTE ((LOCATE AFFECTED:AREA 
                                                         CALLED)
                                                 (PREDICT:AFFECT CALLED)
                                                 (EVALUATE:AFFECT
                                                   CALLED)))
                                 COMPLEXITY:VECTOR (.4 .7 .7 .5)
                                 GENERALIZATIONS NIL
                                 SPECIALIZATIONS NIL
                                 ALTERNATIVES NIL)
  (PUTPROPS BETTER IDEN [((AND (EQUAL (CAR LI)
                                      BETTER)
                               (EQUAL (LENGTH LI)
                                      3))
                          (VECTOR BETTER (TRANSLATE (CADR LI)
                                                    T)
                                  (TRANSLATE (CADDR LI)
                                             T]
                   BEING T
                   IMPLICIT:ARGS NIL
                   EXPLICIT:ARGS (B1 B2)
                   WHAT (TUPLE DECIDE WHICH OF (@ B1)
                               (@ B2)
                               IS MORE A PROPOS TO TRY)
                   HOW (TUPLE COMPARE THE WHEN PARTS OF
                              (@ (CAR B1))
                              AND
                              (@ (CAR B2))
                              AND, IF NECESSARY, COMPARE THEIR 
                              COMPLEXITY VECTORS)
                   WHY (TUPLE PUP CAN ONLY TRY AT MOST ONE OF
                              (@ (CAR B1))
                              AND
                              (@ (CAR B2))
                              AT A TIME)
                   SPEC:WHY (QUOTE (NO SPECIAL REASON))
                   WHEN NIL
                   META:CODE (PROGN
                               (SETQ B1NEW B1)
                               (SETQ B2NEW B2)
                               (SETQ B1NEW (CONS (CAR B1NEW)
                                                 (MAPCAR (CDR B1NEW)
                                                         EVAL)))
                               (SETQ B2NEW (CONS (CAR B2NEW)
                                                 (MAPCAR (CDR B2NEW)
                                                         EVAL)))
                               (SETQ WHEN:DIFF (DIFFERENCE
                                       (WHEN:VALUE B1NEW)
                                       (WHEN:VALUE B2NEW)))
                               [COND
                                 [(EQP WHEN:DIFF 0)
                                  (SETQ RESULT1 (A:BEING:ORDER
                                          (CAR B1NEW)
                                          (CAR B2NEW)))
                                  (SETQ
                                    BECAUSE
                                    (APPEND
                                      BECAUSE
                                      (TUPLE
                                        THE WHEN PARTS OF
                                        (@ (CAR B1NEW))
                                        AND
                                        (@ (CAR B2NEW))
                                        ARE EQUAL AND THE FORMER IS
                                        [@ (COND (RESULT1 (QUOTE LESS))
                                                 (T (QUOTE MORE]
                                        COMPLEX THAN THE LATTER BEING]
                                 (T
                                   (SETQ RESULT1 (NOT (MINUSP WHEN:DIFF)
                                                      ))
                                   (SETQ
                                     BECAUSE
                                     (APPEND
                                       BECAUSE
                                       (TUPLE THE WHEN PART OF THE
                                              (@ (CAR B1NEW))
                                              IS
                                              (@ (COND (RESULT1 
                                                           SUPERIOR)
                                                       (T INFERIOR)))
                                              TO THE WHEN PART OF
                                              (@ (CAR B2NEW]
                               RESULT1)
                   COMMENTS NIL
                   PRE:REQUISITES NIL
                   CO:REQUISITES NIL
                   POST:REQUISITES NIL
                   EXPLICIT:ARGS:CHECK (AND (EQUAL T
                                                   (GETP (CAR B1)
                                                         BEING))
                                            (EQUAL T
                                                   (GETP (CAR B2)
                                                         BEING)))
                   DEMONS NIL
                   MAIN:EFFECTS NIL
                   MINOR:EFFECTS NIL
                   AFFECTS NIL
                   COMPLEXITY:VECTOR NIL
                   GENERALIZATIONS NIL
                   SPECIALIZATIONS NIL
                   ALTERNATIVES NIL
                   PREDICATE T)
  (PUTPROPS CHOOSE:FROM IDEN [((AND (EQUAL (CAR LI)
                                           CHOOSE:FROM)
                                    (EQUAL (LENGTH LI)
                                           2))
                               (VECTOR CHOOSE:FROM
                                       (MAPCAR (CADR LI)
                                               (FUNCTION
                                                 (LAMBDA (Y)
                                                         (TRANSLATE
                                                           Y T]
                        BEING T
                        IMPLICIT:ARGS (EXP:TEST)
                        EXPLICIT:ARGS (S)
                        WHAT (TUPLE CHOOSE THE BEST BEING FROM THE SET
                                    (@ S)
                                    OF BEINGS)
                        HOW (TUPLE COMPARE FEATURES OF THE ELEMENTS OF 
                                   THE SET (@ S)
                                   OF BEINGS)
                        WHY (TUPLE BECAUSE THE FLOW OF CONTROL OF A 
                                   PROGRAM MUST BE DETERMINATE)
                        SPEC:WHY (QUOTE (NO SPECIAL REASON))
                        WHEN NIL
                        META:CODE [PROG
                                    (BEST)
                                    (SETQ BEST (CAR S))
                                    [SETQ
                                      BECAUSE
                                      (VECTOR
                                        WE MUST SELECT THE BEST BEING 
                                        FROM
                                        (INVECTOR (MAPCAR S
                                                          (QUOTE CAR]
                                    [COND
                                      [(SINGLETON S)
                                       (SETQ
                                         BECAUSE
                                         (APPEND
                                           BECAUSE
                                           (VECTOR AND, TRIVIALLY,
                                                   (INVECTOR
                                                     (CAR S))
                                                   IS OUR ONLY CHOICE]
                                      (T
                                        (MAPC
                                          (CDR S)
                                          (FUNCTION
                                            (LAMBDA
                                              (S1)
                                              (COND
                                                ((EQUAL T (BETTER
                                                          S1 BEST))
                                                 (SETQ BEST S1]
                                    (SETQ BECAUSE
                                          (VECTOR NOW THAT WE HAVE 
                                                  SELECTED
                                                  (CAR BEST)
                                                  AS THE BEST BEING OUT 
                                                  OF THE SET
                                                  (MAPCAR S
                                                          (QUOTE CAR))
                                                  WE MUST CARRY OUT
                                                  (INVECTOR BEST)))
                                    (COND ((SETQ TEMPBB (EVAL BEST))
                                           (SET U TEMPBB))
                                          ((CDR S)
                                           (CHOOSE:FROM (PULLOUT BEST S]
                        COMMENTS NIL
                        PRE:REQUISITES NIL
                        CO:REQUISITES NIL
                        POST:REQUISITES NIL
                        EXPLICIT:ARGS:CHECK (PROGN
                                              (SETQ EXP:TEST T)
                                              [MAPC
                                                S
                                                (FUNCTION
                                                  (LAMBDA
                                                    (S1)
                                                    (COND
                                                      ((NOT
                                                         (EQUAL
                                                           T
                                                           (GETP
                                                             (CAR
                                                               S1)
                                                             BEING)))
                                                       (SETQ EXP:TEST 
                                                             NIL]
                                              EXP:TEST)
                        DEMONS NIL
                        MAIN:EFFECTS NIL
                        MINOR:EFFECTS NIL
                        AFFECTS NIL
                        COMPLEXITY:VECTOR (.2 .4 .6 .5)
                        GENERALIZATIONS NIL
                        SPECIALIZATIONS NIL
                        ALTERNATIVES NIL)
  (PUTPROPS CONCEPT:FORMATION BEING T
                              IDEN (([MEMBER LI (QUOTE ((CONCEPT 
                                                          FORMATION)
                                                        (
CONCEPT:FORMATION)
                                                        (CONCEPT 
                                                           LEARNING)
                                                        (FORM CONCEPTS)
                                                        (LEARN CONCEPTS)
                                                        (LEARNS 
                                                           CONCEPTS)
                                                        (FORMS CONCEPTS]
                                     (VECTOR CONCEPT:FORMATION)))
                              IMPLICIT:ARGS NIL
                              EXPLICIT:ARGS NIL
                              WHAT (TUPLE LEARN HOW TO IMPOSE A CONCEPT 
                                          STRUCTURING UPON A DOMAIN; 
                                          LEARN HOW TO CHARACTERIZE, OR 
                                          AT LEAST DISTINGUISH, VARIOUS 
                                          CONCEPTS)
                              HOW (TUPLE BY CHOOSING THE DESIRED TYPE 
                                         OF CONCEPT FORMATION CALLED 
                                         FOR, AND THEN CARRYING IT OUT)
                              WHY (TUPLE CONCEPT:LEARNING IS NECESSARY 
                                         TO CONCEPT KNOWLEDGE)
                              SPEC:WHY (QUOTE (NO SPECIAL REASON))
                              WHEN [((MEMBER TYPE:OF:C:F ABLE:PUP:LIST)
                                     -70
                                     (TUPLE BECAUSE IF WE CAN ALREADY 
                                            DO (@ TYPE:OF:C:F)
                                            THEN WE SHOULDNT TRY TO DO 
                                            IT OVER AGAIN))
                                    ((MEMBER (QUOTE (CHARACTERIZE
                                                      CLASSES))
                                             PUP:WANTS:LIST)
                                     88
                                     (QUOTE (BECAUSE CONCEPT FORMATION 
                                                     IS A GOOD WAY TO 
                                                     GET A 
                                                   CHARACTERIZATION OF 
                                                     CLASSES)))
                                    (T (COND (NEW:INFO:LIST -60)
                                             (T 40))
                                       (QUOTE (BECAUSE NEW INFORMATION 
                                                       MIGHT ALTER OUR 
                                                       COURSE OF ACTION]
                              META:CODE (EVAL (LIST TYPE:OF:C:F))
                              COMMENTS NIL
                              PRE:REQUISITES [(VECTOR AWARE USER
                                                      (VECTOR PUP IS 
                                                              ABOUT TO 
                                                              WORK ON 
                                                            CONCEPT 
                                                          FORMATION))
                                              (VECTOR TYPE OF 
                                                  CONCEPT:FORMATION IS 
                                                      TYPE:OF:C:F)
                                              (VECTOR
                                                AWARE USER
                                                (VECTOR THE TYPE OF 
                                                        CONCEPT 
                                                        FORMATION PUP 
                                                        IS ABOUT TO 
                                                        WORK ON IS
                                                        (@ TYPE:OF:C:F]
                              CO:REQUISITES NIL
                              POST:REQUISITES ((VECTOR
                                                 AWARE USER
                                                 (VECTOR PUP HAS 
                                                         THOUGHT ABOUT 
                                                         THE
                                                         (@ TYPE:OF:C:F)
                                                         TYPE OF 
                                                  CONCEPT:FORMATION)))
                              EXPLICIT:ARGS:CHECK T
                              DEMONS (TUPLE INFERENCE:DEMONS 
                                            ATTENTION:DEMONS)
                              MAIN:EFFECTS (((VECTOR ABLE PUP
                                                     (VECTOR LEARN 
                                                           CONCEPTS))
                                             (VECTOR CONCEPT:FORMATION))
                                            )
                              MINOR:EFFECTS NIL
                              AFFECTS (TUPLE (TUPLE (EVAL TYPE:OF:C:F)
                                                    CALLED))
                              COMPLEXITY:VECTOR (.1
                                                  (PLUS
                                                    .2
                                                    (TIMES
                                                      .8
                                                      (DIMENSION2
                                                        TYPE:OF:C:F)))
                                                  (PLUS
                                                    .1
                                                    (TIMES
                                                      .9
                                                      (DIMENSION3
                                                        TYPE:OF:C:F)))
                                                  .5)
                              GENERALIZATIONS (ATTEND LEARN 
                                                INDUCTIVE:INFERENCE)
                              SPECIALIZATIONS (VECTOR
                                                (VECTOR ALTERNATIVES
                                                        (VECTOR 
                                   CLASSIFICATORY:CONCEPT:FORMATION 
                                      COMPARITIVE:CONCEPT:FORMATION 
                                         METRICAL:CONCEPT:FORMATION)
                                                        PARTS
                                                        (VECTOR 
                                                          META:CODE)
                                                        
                                                  CONCEPT:FORMATION)
                                                (VECTOR BOOLEAN
                                                        (VECTOR 
                                                           CONCEPTS MAY 
                                                               VARY 
                                                               WITH 
                                                               TIME)
                                                        AFFECTS
                                                        (VECTOR THE 
                                                              BASIC 
                                                          STRUCTURE OF 
                                                            FORMING A 
                                                            CONCEPT)
                                                        
                                                  CONCEPT:FORMATION)
                                                (VECTOR
                                                  BOOLEAN
                                                  (VECTOR CONCEPT 
                                                          FORMATION MAY 
                                                          DEPEND UPON 
                                                          THE SPEED OF 
                                                       PRESENTATION OF 
                                                          THE STIMULI)
                                                  AFFECTS
                                                  (VECTOR THE AMOUNT OF 
                                                          EFFORT
                                                          (@ TASK:NAME)
                                                          SHOULD SPEND 
                                                          ON TRYING TO 
                                                          IDENTIFY EACH 
                                                          STIMULUS)
                                                  CONCEPT:FORMATION)
                                                (VECTOR
                                                  DICHOTOMY
                                                  (VECTOR (VECTOR
                                                            INSTANCES 
                                                            MAY BE LEFT 
                                                            IN VIEW 
                                                       INDEFINITELY)
                                                          (VECTOR
                                                            INSTANCES 
                                                            MAY BE 
                                                            REMOVED 
                                                            AFTER 
                                                         PROCESSING))
                                                  AFFECTED
                                                  (VECTOR (VECTOR
                                                            NEW 
                                                          RELATIONS CAN 
                                                            BE DERIVED 
                                                            AS NEEDED)
                                                          (VECTOR
                                                            ALL 
                                                          RELATIONS 
                                                            MUST BE 
                                                            DERIVED 
                                                            UPON 
                                                            INITIAL 
                                                           EXPOSURE TO 
                                                            THE 
                                                           STIMULUS))
                                                  WHEN
                                                  (VECTOR BEFORE 
                                                          DECIDING 
                                                          FIRMLY HOW TO 
                                                          GET RELATIONS 
                                                          FROM INPUT 
                                                          STIMULI)
                                                  CONCEPT:FORMATION)
                                                (VECTOR
                                                  ALTERNATIVES
                                                  (VECTOR 
                                      CONJUNCTIVE:CONCEPT:FORMATION 
                                      DISJUNCTIVE:CONCEPT:FORMATION 
                MIXED:CONJUNCTIVE:AND:DISJUNCTIVE:CONCEPT:FORMATION)
                                                  AFFECTS
                                                  (VECTOR HOW
                                                          (@ TASK:NAME)
                                                          STORES THE 
                                                        DESCRIPTION OF 
                                                          A CONCEPT)
                                                  PARTS
                                                  (VECTOR META:CODE)
                                                  CONCEPT:FORMATION)
                                                (VECTOR ALTERNATIVES
                                                        (VECTOR 
                                POSITIVE:TRANSFER:CONCEPT:FORMATION 
                                NEGATIVE:TRANSFER:CONCEPT:FORMATION 
                                      NO:TRANSFER:CONCEPT:FORMATION 
                   POSITIVE:AND:NEGATIVE:TRANSFER:CONCEPT:FORMATION)
                                                        AFFECTS
                                                        (VECTOR HOW 
                                                 PREVIOUSLY:LEARNED 
                                                           CONCEPTS AND 
                                             PREVIOUSLY:ENCOUNTERED 
                                                            STIMULI 
                                                             AFFECT THE 
                                                           LEARNING OF 
                                                                NEW 
                                                           CONCEPTS AND 
                                                                THE 
                                                        RECOGNITION 
                                                               THAT A 
                                                                NEW 
                                                            CONCEPT IS 
                                                                NEW)
                                                        WHEN
                                                        (VECTOR BEFORE 
                                                           DECIDING 
                                                             FIRMLY HOW 
                                                                TO 
                                                             SEARCH 
                                                            THROUGH THE 
                                                                SET OF 
                                                          CONCEPTS, AND 
                                                             BEFORE 
                                                           DECIDING 
                                                             FIRMLY HOW 
                                                                TO 
                                                             INSERT A 
                                                                NEW 
                                                            CONCEPT 
                                                               INTO OUR 
                                                                SET OF 
                                                           CONCEPTS)
                                                        
                                                  CONCEPT:FORMATION)
                                                (VECTOR
                                                  ALTERNATIVES
                                                  (VECTOR 
                                      POSITIVE:INSTANCE:UTILIZATION 
                                      NEGATIVE:INSTANCE:UTILIZATION 
                         POSITIVE:AND:NEGATIVE:INSTANCE:UTILIZATION)
                                                  AFFECTS
                                                  (VECTOR WHAT 
                                                        INFORMATION
                                                          (@ TASK:NAME)
                                                          MAY USE TO 
                                                          MODIFY THE 
                                                        DESCRIPTION OF 
                                                          A CONCEPT)
                                                  PARTS
                                                  (VECTOR META:CODE)
                                                  CONCEPT:FORMATION)
                                                (VECTOR
                                                  BOOLEAN
                                                  (VECTOR 
                                                   SUBJECT:SPECIFIC 
                                                          BEHAVIOR MAY 
                                                          BE REQUIRED 
                                                          OF
                                                          (@ TASK:NAME))
                                                  AFFECTS
                                                  (VECTOR WHETHER 
                                                         PARAMETERS 
                                                         DESCRIBING AN 
                                                         INDIVIDUAL 
                                                          MUST BE READ 
                                                          IN BY
                                                          (@ TASK:NAME))
                                                  WHEN
                                                  (VECTOR BEFORE ANY 
                                                         PROCESSING 
                                                          ROUTINES ARE 
                                                          FINALIZED)
                                                  WHY
                                                  (VECTOR BECAUSE ANY 
                                                         PROCESSING 
                                                          ROUTINE MAY 
                                                          HAVE TO 
                                                          DEPEND UPON 
                                                          SOME 
                                                         INDIVIDUAL 
                                                         PARAMETERS)
                                                  CONCEPT:FORMATION)
                                                (VECTOR
                                                  ADAPTATION
                                                  (VECTOR DESIRED 
                                                          DIALOGUE 
                                                          BETWEEN
                                                          (@ TASK:NAME)
                                                          AND ITS USERS)
                                                  AFFECTS
                                                  (VECTOR OUTPUT 
                                                         VARIABLES, AND 
                                                          OUTPUT 
                                                          FORMATS)
                                                  CONCEPT:FORMATION))
                              ALTERNATIVES ((GRAMMATICAL:INFERENCE
                                              PATTERN:RECOGNITION 
                                              SIMULATED:EVOLUTION))
                              LIST (NIL . #7000))
  (PUTPROPS DEFER:DECISION BEING T
                           IDEN [((AND (EQUAL (CAR LI)
                                              DEFER:DECISION)
                                       (EQUAL (LENGTH LI)
                                              2))
                                  (VECTOR DEFER:DECISION (CADR LI)))
                                 ((MATCH (QUOTE (DEFER THE DECISION 
                                                       ANY1))
                                         LI)
                                  (VECTOR DEFER:DECISION (@ ANY1]
                           IMPLICIT:ARGS NIL
                           EXPLICIT:ARGS (D)
                           EXPLICIT:ARGS:CHECK (MEMBER D 
                                           UNDEFERRED:DECISION:LIST)
                           WHAT (TUPLE DEFER THE DECISION (@ D)
                                       AS LONG AS POSSIBLE)
                           HOW (TUPLE DECIDE WHEN THE CONSEQUENCES OF 
                                      DECISION (@ D)
                                      WOULD NEXT AFFECT OUR WRITING THE 
                                      PROGRAM CODE, AND THEN DEMONIZE 
                                      THAT SITUATION)
                           WHY (TUPLE THE LONGER WE CAN DEFER ANY 
                                      DECISION, INCLUDING (@ D)
                                      ,THE GREATER THE CHANCES THAT WE 
                                      WILL HAVE GAINED ENOUGH NEW 
                                      KNOWLEDGE OF THE TASK THAT WHEN 
                                      WE MUST FINALLY CONSIDER
                                      (@ D)
                                      WE WILL KNOW ENOUGH TO ANSWER IT 
                                      EASILY)
                           SPEC:WHY (QUOTE (NO SPECIAL REASON))
                           MAIN:EFFECTS [((VECTOR DEFERRED DECISION 
                                                  ANY1)
                                          (VECTOR DEFER:DECISION
                                                  (@ ANY1]
                           MINOR:EFFECTS NIL
                           WHEN ((UNDEFERRED:DECISION:LIST
                                   40
                                   (VECTOR BECAUSE THERE EXIST 
                                           UNDEFERRED DECISIONS, SO WE 
                                           MUST LOOK AFTER THEM IN SOME 
                                           WAY BEFORE PROCEDING))
                                 ((MEMBER D UNDEFERRED:DECISION:LIST)
                                  89
                                  (VECTOR BECAUSE (@ D)
                                          IS ONE OF THOSE UNDEFERRED 
                                          DECISIONS)))
                           META:CODE [PROGN
                                       (SETQ UNDEFERRED:DECISION:LIST
                                             (PULLOUT D 
                                           UNDEFERRED:DECISION:LIST))
                                       [SETQ
                                         SITU
                                         (WHEN:NEXT
                                           (VECTOR PUP REINVESTIGATE
                                                   (@ D]
                                       (COND
                                         [(EVAL SITU)
                                          (RESOLVE:DECISION
                                            (VECTOR (@ D)
                                                    SINCE
                                                    (@ SITU]
                                         ((EQUAL SITU (LIST FOREVER))
                                          T)
                                         (T
                                           (SETQ
                                             DEFERRED:DECISION:LIST
                                             (CONS (VECTOR
                                                     (@ D)
                                                     UNTIL
                                                     (@ SITU))
                                                   
                                             DEFERRED:DECISION:LIST]
                           COMMENTS NIL
                           PRE:REQUISITES NIL
                           CO:REQUISITES NIL
                           POST:REQUISITES NIL
                           DEMONS NIL
                           AFFECTS (QUOTE ((WHEN:NEXT CALLED)))
                           COMPLEXITY:VECTOR (.5 .5 .5 .5)
                           GENERALIZATIONS NIL
                           SPECIALIZATIONS NIL
                           ALTERNATIVES NIL
                           PREDICATE NIL)
  (PUTPROPS EXTRACT:RELEVANT:SUBSET IDEN [((AND (EQUAL (CAR LI)
                                                       
                                            EXTRACT:RELEVANT:SUBSET)
                                                (EQUAL (LENGTH LI)
                                                       2))
                                           (VECTOR 
                                            EXTRACT:RELEVANT:SUBSET
                                                   (TRANSLATE
                                                     (CADR LI)
                                                     T]
                                    BEING T
                                    IMPLICIT:ARGS NIL
                                    EXPLICIT:ARGS (NEW:INFO)
                                    WHAT (TUPLE EXTRACT THE SMALL 
                                                NUCLEUS OF RELEVANT 
                                                INFO FROM (@ NEW:INFO))
                                    HOW (TUPLE BY DELETING ALL THE 
                                               IRRELEVANT INFO FROM
                                               (@ NEW:INFO))
                                    WHY (TUPLE ONLY A SMALL AMOUNT OF 
                                               INFO IS RELEVANT TO ANY 
                                               SPECIFIC PROBLEM, AND 
                                               PUP CANNOT HANDLE A 
                                               LARGE MASS OF INFO 
                                               EFFICIENTLY)
                                    SPEC:WHY (QUOTE (NO SPECIAL REASON))
                                    WHEN [((GREATERP (SIZE NEW:INFO)
                                                     50)
                                           70
                                           (QUOTE (BECAUSE IF THE NEW 
                                                           INFO IS OVER 
                                                           50 TOKENS 
                                                           LONG, THEN 
                                                           WE CANNOT 
                                                        EFFICIENTLY 
                                                         COMPREHEND IT))
                                           )
                                          ((LESSP (SIZE NEW:INFO)
                                                  12)
                                           -80
                                           (QUOTE (BECAUSE IF THE NEW 
                                                           INFO IS LESS 
                                                           THAN A DOZEN 
                                                           TOKENS LONG 
                                                           THEN WE 
                                                           SHOULD 
                                                           EASILY BE 
                                                           ABLE TO 
                                                           PROCESS IT 
                                                           AS IT IS]
                                    META:CODE (PROGN
                                                (
USE:PROGRAMMING:KNOWLEDGE APPLIED TO NEW:INFO SO:AS:TO KEEP
                          (VECTOR RELEVANT NEW:INFO))
                                                (SETQ 
                                                 RELEVANT:INFO:LIST
                                                      (CONS NEW:INFO 
                                                 RELEVANT:INFO:LIST)))
                                    COMMENTS NIL
                                    PRE:REQUISITES NIL
                                    CO:REQUISITES NIL
                                    POST:REQUISITES NIL
                                    EXPLICIT:ARGS:CHECK (MEMBER 
                                                           NEW:INFO 
                                                      NEW:INFO:LIST)
                                    DEMONS NIL
                                    MAIN:EFFECTS [((VECTOR RELEVANT 
                                                           INFO ANY1)
                                                   (VECTOR
                                                     
                                            EXTRACT:RELEVANT:SUBSET
                                                     (@ ANY1]
                                    MINOR:EFFECTS NIL
                                    AFFECTS (QUOTE ((
APPLY:PROGRAMMING:KNOWLEDGE CALLED)))
                                    COMPLEXITY:VECTOR (.3 .6 .6 .5)
                                    GENERALIZATIONS NIL
                                    SPECIALIZATIONS NIL
                                    ALTERNATIVES NIL)
  (PUTPROPS GET:NAME BEING T
                     IDEN [((AND (EQUAL (CAR LI)
                                        CALL)
                                 (EQUAL (LENGTH LI)
                                        3))
                            (VECTOR GET:NAME (CADR LI)
                                    (CADDR LI)))
                           ((AND (EQUAL (CAR LI)
                                        NAME)
                                 (EQUAL (LENGTH LI)
                                        3))
                            (VECTOR GET:NAME (CADR LI)
                                    (CADDR LI]
                     IMPLICIT:ARGS (TEMP1)
                     EXPLICIT:ARGS (EXPRESSION NEW:NAME)
                     WHAT (TUPLE IDENTIFY THE NEW:NAME (@ NEW:NAME)
                                 WITH THE EXPRESSION (@ EXPRESSION))
                     HOW (TUPLE PUP WILL ASK THE USER WHAT HE WISHES TO 
                                CALL (@ EXPRESSION))
                     WHY (TUPLE BOTH PUP AND THE USER MAY NEED TO REFER 
                                TO (@ EXPRESSION))
                     SPEC:WHY (QUOTE (NO SPECIAL REASON))
                     WHEN [(T (COND ((MEMBER EXPRESSION 
                                             NAMED:EXPRESSION:LIST)
                                     -90)
                                    (T 50))
                              (QUOTE (BECAUSE MOST OBJECTS SHOULD HAVE 
                                              NO MORE AND NO LESS THAN 
                                              ONE NAME]
                     META:CODE (PROGN [COND ((ATOM NEW:NAME)
                                             (SET NEW:NAME (READ)))
                                            (T (SET (EVAL NEW:NAME)
                                                    (READ]
                                      (SETQ NAMED:EXPRESSION:LIST
                                            (CONS EXPRESSION 
                                              NAMED:EXPRESSION:LIST)))
                     COMMENTS ((SETQ NEW:NAME (CADR NEW:NAME)))
                     PRE:REQUISITES [(VECTOR PUP STUDIED
                                             (VECTOR PLAUSIBLE NAMES 
                                                     FOR (@ EXPRESSION))
                                             )
                                     (VECTOR AWARE USER
                                             (VECTOR PUP WANTS USER TO 
                                                     TYPE IN NAME FOR
                                                     (@ EXPRESSION]
                     CO:REQUISITES NIL
                     POST:REQUISITES [(VECTOR AWARE USER
                                              (VECTOR PUP AND USER ARE 
                                                      ABLE TO REFER TO
                                                      (@ EXPRESSION)
                                                      AS
                                                      (@ NEW:NAME)
                                                      WHICH IS
                                                      (EVAL NEW:NAME]
                     EXPLICIT:ARGS:CHECK T
                     DEMONS NIL
                     MAIN:EFFECTS [((VECTOR ABLE PUP
                                            (VECTOR REFER ANY1 AS ANY2))
                                    (VECTOR GET:NAME (@ ANY1)
                                            (@ ANY2)))
                                   ((VECTOR ABLE USER
                                            (VECTOR REFER ANY1 AS ANY2))
                                    (VECTOR GET:NAME (@ ANY1)
                                            (@ ANY2)))
                                   ((VECTOR NAMED EXPRESSION ANY1 ANY2)
                                    (VECTOR GET:NAME (@ ANY1)
                                            (@ ANY2]
                     MINOR:EFFECTS NIL
                     AFFECTS NIL
                     COMPLEXITY:VECTOR (.1 .3 .2 .5)
                     GENERALIZATIONS NIL
                     SPECIALIZATIONS NIL
                     ALTERNATIVES NIL)
  (PUTPROPS GET:NEW:INFORMATION IDEN [((AND (EQUAL (CAR LI)
                                                   GET:NEW:INFORMATION)
                                            (EQUAL (LENGTH LI)
                                                   2))
                                       (VECTOR GET:NEW:INFORMATION
                                               (CADR LI]
                                BEING T
                                IMPLICIT:ARGS NIL
                                EXPLICIT:ARGS (NEW:INFO)
                                WHAT (TUPLE GET THE NEW PIECE OF 
                                            INFORMATION AND CALL IT
                                            (@ NEW:INFO))
                                HOW (TUPLE ASK THE USER FOR NEW 
                                           INFORMATION)
                                WHY (TUPLE WE NEED NEW INFORMATION; SEE 
                                           ESPECIALLY SPEC:WHY)
                                SPEC:WHY (QUOTE (NO SPECIAL REASON))
                                WHEN [(T (COND (NEW:INFO:LIST -68)
                                               (T 50))
                                         (QUOTE (BECAUSE WE SHOULD GET 
                                                         NEW 
                                                        INFORMATION IFF 
                                                         THERE IS NONE 
                                                         IN EXISTENCE]
                                META:CODE (PROG1
                                            [COND
                                              [(ATOM NEW:INFO)
                                               (SET NEW:INFO
                                                    (INVECTOR (READ]
                                              (T
                                                (SET (EVAL NEW:INFO)
                                                     (INVECTOR
                                                       (READ]
                                            (SETQ NEW:INFO:LIST
                                                  (CONS (EVAL NEW:INFO)
                                                        NEW:INFO:LIST))
                                            (SETQ PUP:WANTED:LIST
                                                  (CONS (CAR 
                                                     PUP:WANTS:LIST)
                                                        PUP:WANTED:LIST)
                                                  )
                                            (SETQ PUP:WANTS:LIST
                                                  (CDR PUP:WANTS:LIST)))
                                COMMENTS NIL
                                PRE:REQUISITES [(VECTOR
                                                  AWARE USER
                                                  (APPEND
                                                    (QUOTE
                                                      (VECTOR PUP WANTS)
                                                      )
                                                    (CDAR 
                                                     PUP:WANTS:LIST]
                                CO:REQUISITES NIL
                                POST:REQUISITES NIL
                                EXPLICIT:ARGS:CHECK T
                                DEMONS (TUPLE SPECIFICITY:CHECK:DEMON)
                                MAIN:EFFECTS [((VECTOR NEW INFO ANY1)
                                               (VECTOR 
                                                GET:NEW:INFORMATION
                                                       (TUPLE QUOTE 
                                                              ANY1]
                                MINOR:EFFECTS NIL
                                AFFECTS NIL
                                COMPLEXITY:VECTOR (.1 .1 .1 .5)
                                GENERALIZATIONS NIL
                                SPECIALIZATIONS NIL
                                ALTERNATIVES NIL)
  (PUTPROPS MESSAGE IDEN [((AND (EQUAL (CAR LI)
                                       MESSAGE)
                                (EQUAL (LENGTH LI)
                                       2))
                           (VECTOR MESSAGE (CADR LI]
                    BEING T
                    IMPLICIT:ARGS NIL
                    EXPLICIT:ARGS (M)
                    WHAT (TUPLE GIVE THE USER THE MESSAGE (@ M))
                    HOW (TUPLE THE USER WILL READ THE MESSAGE
                               (@ M)
                               THAT PUP TYPES OUT)
                    WHY (TUPLE SO THAT THE USER MAY ASSIMILATE THE 
                               INFORMATION IN THE MESSAGE (@ M))
                    WHEN [((MEMBER M AWARE:USER:LIST)
                           -201
                           (QUOTE (BECAUSE THE USER NEVER FORGETS]
                    META:CODE (PROGN (PRIN1 "PUP: ")
                                     (PRINT (OUTVECTOR M))
                                     (TERPRI)
                                     (SETQ LASTRESPONDER (QUOTE PUP))
                                     (SETQ AWARE:USER:LIST
                                           (CONS M AWARE:USER:LIST))
                                     (SETQ READ:USER:LIST (CONS M 
                                                     READ:USER:LIST)))
                    COMMENTS NIL
                    PRE:REQUISITES NIL
                    CO:REQUISITES NIL
                    POST:REQUISITES NIL
                    EXPLICIT:ARGS:CHECK T
                    DEMONS NIL
                    MAIN:EFFECTS [((VECTOR READ USER ANY1)
                                   (VECTOR MESSAGE (@ ANY1)))
                                  ((VECTOR AWARE USER ANY1)
                                   (VECTOR MESSAGE (@ ANY1]
                    MINOR:EFFECTS ((QUOTE (LASTRESPONDER PUP)))
                    AFFECTS NIL
                    COMPLEXITY:VECTOR (0.0 .1 .9 .7)
                    GENERALIZATIONS (COMMUNICATE I/O)
                    SPECIALIZATIONS (RESPOND QUERY)
                    ALTERNATIVES NIL
                    SPEC:WHY (QUOTE (NO SPECIAL REASON)))
  (PUTPROPS OBTAIN:USABLE:INFORMATION IDEN [((AND (EQUAL (CAR LI)
                                                         
                                          OBTAIN:USABLE:INFORMATION)
                                                  (EQUAL (LENGTH LI)
                                                         2))
                                             (VECTOR 
                                          OBTAIN:USABLE:INFORMATION
                                                     (CADR LI]
                                      BEING T
                                      IMPLICIT:ARGS NIL
                                      EXPLICIT:ARGS (U)
                                      WHAT (TUPLE OBTAIN SOME 
                                                  INFORMATION WHICH CAN 
                                                  BE USED)
                                      HOW (TUPLE OBTAIN NEW FACTS ABOUT 
                                                 OLD INFORMATION, OR 
                                                 OBTAIN TOTALLY NEW 
                                                 INFORMATION)
                                      WHY (TUPLE PUP HAS NO MORE 
                                                 INFORMATION THAT IT 
                                                 CAN USE TO PROGRESS)
                                      SPEC:WHY (QUOTE (NO SPECIAL 
                                                          REASON))
                                      WHEN NIL
                                      META:CODE [PROGN
                                                  (SETQ
                                                    BECAUSE
                                                    (QUOTE
                                                      (VECTOR WE CAN 
                                                              ONLY TRY 
                                                              TO OBTAIN 
                                                             USABLE 
                                                        INFORMATION IN 
                                                              ONE WAY 
                                                              AT A TIME)
                                                      ))
                                                  (CHOOSE:FROM
                                                    (QUOTE
                                                      ((TRANSLATE
                                                         U)
                                                       (
GET:NEW:INFORMATION U)
                                                       (
ANALYZE:IMPLICATIONS U)
                                                       (
EXTRACT:RELEVANT:SUBSET U]            COMMENTS NIL
                                      PRE:REQUISITES NIL
                                      CO:REQUISITES NIL
                                      POST:REQUISITES NIL
                                      EXPLICIT:ARGS:CHECK T
                                      DEMONS NIL
                                      MAIN:EFFECTS [((VECTOR NEW INFO 
                                                             ANY1)
                                                     (VECTOR
                                                       
                                          OBTAIN:USABLE:INFORMATION
                                                       (@ ANY1)))
                                                    ((VECTOR USABLE 
                                                             INFO ANY1)
                                                     (VECTOR
                                                       
                                          OBTAIN:USABLE:INFORMATION
                                                       (@ ANY1]
                                      MINOR:EFFECTS NIL
                                      AFFECTS (QUOTE ((CHOOSE:FROM
                                                        CALLED)
                                                      (TRANSLATE 
                                                    POSSIBLE:CALLED)
                                                      (
GET:NEW:INFORMATION POSSIBLE:CALLED)
                                                      (
ANALYZE:IMPLICATIONS POSSIBLE:CALLED)
                                                      (
EXTRACT:RELEVANT:SUBSET POSSIBLE:CALLED)))
                                      COMPLEXITY:VECTOR (.5 .5 .5 .5)
                                      GENERALIZATIONS NIL
                                      SPECIALIZATIONS NIL
                                      ALTERNATIVES NIL)
  (PUTPROPS PROPOSE:PLAUSIBLE:NAMES BEING T
                                    IDEN [((AND (EQUAL (CAR LI)
                                                       
                                            PROPOSE:PLAUSIBLE:NAMES)
                                                (EQUAL (LENGTH LI)
                                                       2))
                                           (VECTOR 
                                            PROPOSE:PLAUSIBLE:NAMES
                                                   (CADR LI)))
                                          ((MATCH (QUOTE (PROPOSE
                                                           PLAUSIBLE 
                                                           NAMES FOR 
                                                           ANY1))
                                                  LI)
                                           (VECTOR 
                                            PROPOSE:PLAUSIBLE:NAMES
                                                   (CADR LI]
                                    IMPLICIT:ARGS (EXPRES2 NEW:EXPRES)
                                    EXPLICIT:ARGS (EXPRES)
                                    EXPLICIT:ARGS:CHECK [COND
                                                          ((ATOM EXPRES)
                                                           (SETQ
                                                             NEW:EXPRES
                                                             (
COLON:BREAK EXPRES)))
                                                          (T
                                                            (SETQ
                                                              
                                                         NEW:EXPRES
                                                              (PROG
                                                                (TEMP1)
                                                                [MAPC
                                                                  
                                                             EXPRES
                                                                  (
FUNCTION (LAMBDA (ZZ)
                 (SETQ TEMP1 (APPEND TEMP1 (COLON:BREAK ZZ]
                                                                (RETURN
                                                                  TEMP1]
                                    WHAT (TUPLE PROPOSE PLAUSIBLE NAMES 
                                                FOR (@ EXPRES))
                                    HOW (TUPLE USE PARLOR PSYCHOLOGY TO 
                                               EXTRACT MNEMONIC 
                                               CONTRACTIONS OF
                                               (@ EXPRES))
                                    WHY (TUPLE AID THE USER OR PUP IN 
                                               CHOOSING A EXPRES FOR 
                                               THE OBJECT (@ EXPRES))
                                    SPEC:WHY (QUOTE (NO SPECIAL REASON))
                                    MAIN:EFFECTS [((VECTOR
                                                     PLAUSIBLE NAMES
                                                     (VECTOR FOR ANY1 
                                                             HAVE BEEN 
                                                            STUDIED))
                                                   (VECTOR
                                                     
                                            PROPOSE:PLAUSIBLE:NAMES
                                                     (@ ANY1)))
                                                  ((VECTOR
                                                     PUP STUDIED
                                                     (VECTOR PLAUSIBLE 
                                                             NAMES FOR 
                                                             ANY1))
                                                   (VECTOR
                                                     
                                            PROPOSE:PLAUSIBLE:NAMES
                                                     (@ ANY1]
                                    MINOR:EFFECTS NIL
                                    WHEN [(T
                                            (COND
                                              ((MEMBER
                                                 (TUPLE PLAUSIBLE NAMES 
                                                        FOR
                                                        (@ EXPRES))
                                                 PUP:STUDIED:LIST)
                                               -99)
                                              (T 33))
                                            (QUOTE (BECAUSE WE SHOULDNT 
                                                            WASTE TOO 
                                                            MUCH TIME 
                                                            GETTING 
                                                          PLAUSIBLE 
                                                            NAMES, YET 
                                                            WE ALSO 
                                                           SHOULDNT 
                                                         COMPLETELY LET 
                                                            THE USER 
                                                            FEND FOR 
                                                            HIMSELF ON 
                                                            THIS 
                                                            SUBJECT]
                                    META:CODE (PROG
                                                (P)
                                                (SETQ
                                                  EXPRES2
                                                  (OUTVECTOR
                                                    (OUTQUOTE 
                                                         NEW:EXPRES)))
                                                (SETQ
                                                  P
                                                  (MAPCAR
                                                    [LIST
                                                      (INITIALS EXPRES2)
                                                      (MAIN:WORDS
                                                        EXPRES2)
                                                      (FIRST:FEW
                                                        (INITIALS
                                                          EXPRES2))
                                                      (FIRST:FEW
                                                        (MAIN:WORDS
                                                          EXPRES2))
                                                      (FIRST:FEW
                                                        (INITIALS
                                                          (MAIN:WORDS
                                                            EXPRES2)))
                                                      (LIST
                                                        (PACK
                                                          (INITIALS
                                                            EXPRES2)))
                                                      (LIST
                                                        (PACK
                                                          (FIRST:FEW
                                                            (INITIALS
                                                              EXPRES2]
                                                    (QUOTE COLON:BACK)))
                                                (SETQ P (SETDIFFERENCE
                                                        P KNOWN:NAMES))
                                                (SETQ P (INTERSECTION
                                                        P P))
                                                (SETQ
                                                  MSG
                                                  (VECTOR (@ P)
                                                          IS THE SET OF 
                                                          PLAUSIBLE 
                                                          NAMES OF
                                                          (@ EXPRES2)
                                                          WHICH IS AN 
                                                          EXPANSION OF
                                                          (@ EXPRES)))
                                                (SETQ
                                                  PLAUSIBLE:NAMES:LIST
                                                  (CONS
                                                    (VECTOR
                                                      FOR
                                                      (@ EXPRES)
                                                      HAVE BEEN STUDIED)
                                                    
                                               PLAUSIBLE:NAMES:LIST))
                                                (SETQ
                                                  PUP:STUDIED:LIST
                                                  (CONS
                                                    (VECTOR
                                                      PLAUSIBLE NAMES 
                                                      FOR (@ EXPRES))
                                                    PUP:STUDIED:LIST))
                                                (RETURN P))
                                    COMMENTS NIL
                                    PRE:REQUISITES NIL
                                    CO:REQUISITES NIL
                                    POST:REQUISITES ((VECTOR
                                                       AWARE USER
                                                       (INVECTOR MSG)))
                                    DEMONS (TUPLE 
                                       FRINGE:OF:CONCIOUSNESS:DEMON 
                                                  PSYCHOLOGY:DEMON)
                                    AFFECTS NIL
                                    COMPLEXITY:VECTOR (.1 .2 .3 .5)
                                    GENERALIZATIONS NIL
                                    SPECIALIZATIONS NIL
                                    ALTERNATIVES NIL)
  (PUTPROPS REINVESTIGATE:DECISION BEING T
                                   IDEN [((AND (EQUAL (CAR LI)
                                                      RESOLVE:DECISION)
                                               (EQUAL (LENGTH LI)
                                                      2))
                                          (VECTOR RESOLVE:DECISION
                                                  (CADR LI)))
                                         ((MATCH (QUOTE (RESOLVE THE 
                                                           DECISION 
                                                               ANY1))
                                                 LI)
                                          (VECTOR RESOLVE:DECISION
                                                  (VECTOR (VECTOR
                                                            BECAUSE OF 
                                                            DIRECT 
                                                            COMMAND)
                                                          (@ ANY1]
                                   IMPLICIT:ARGS (D1)
                                   EXPLICIT:ARGS (D)
                                   EXPLICIT:ARGS:CHECK (OR
                                                         (MEMBER D 
                                             DEFERRED:DECISION:LIST)
                                                         (EQUAL
                                                           (CADDDR
                                                             D)
                                                           (VECTOR
                                                             BECAUSE OF 
                                                             DIRECT 
                                                            COMMAND)))
                                   WHAT (VECTOR RESOLVE THE DECISION
                                                (CADR D)
                                                BECAUSE
                                                (CADDDR D)
                                                IS NOW TRUE; FIRST TRY 
                                                TO DEFER IT A LITTLE 
                                                LONGER)
                                   HOW (VECTOR TRY TO DEFER
                                               (CADDR D)
                                               ;ELSE TRY TO RESOLVE IT 
                                               WITH PRESENT KNOWLEDGE 
                                               ;ELSE ASK THE USER TO 
                                               RESOLVE IT)
                                   WHY (VECTOR AS FAR AS WE KNOW AT 
                                               THIS INSTANT, THE 
                                               DECISION (CADDR D)
                                               CANNOT BE DEFERRED ANY 
                                               LONGER)
                                   SPEC:WHY (QUOTE (NO SPECIAL REASON))
                                   MAIN:EFFECTS [((VECTOR RESOLVED 
                                                          DECISION ANY1)
                                                  (VECTOR
                                                    RESOLVE:DECISION
                                                    (VECTOR
                                                      (VECTOR BECAUSE 
                                                              OF DIRECT 
                                                            COMMAND)
                                                      (@ D]
                                   MINOR:EFFECTS NIL
                                   WHEN NIL
                                   META:CODE (PROGN
                                               (SETQ 
                                             DEFERRED:DECISION:LIST
                                                     (PULLOUT D 
                                             DEFERRED:DECISION:LIST))
                                               (SETQ
                                                 
                                           UNDEFERRED:DECISION:LIST
                                                 (CONS (CADR D)
                                                       
                                           UNDEFERRED:DECISION:LIST))
                                               (DEFER:DECISION
                                                 (CADR D)))
                                   COMMENTS NIL
                                   PRE:REQUISITES NIL
                                   CO:REQUISITES NIL
                                   POST:REQUISITES NIL
                                   DEMONS NIL
                                   AFFECTS NIL
                                   COMPLEXITY:VECTOR (.5 .5 .5 .5)
                                   GENERALIZATIONS NIL
                                   SPECIALIZATIONS NIL
                                   ALTERNATIVES NIL
                                   PREDICATE NIL)
  (PUTPROPS RESOLVE:DECISION BEING T
                             IDEN [((AND (EQUAL (CAR LI)
                                                RESOLVE:DECISION)
                                         (EQUAL (LENGTH LI)
                                                2))
                                    (VECTOR RESOLVE:DECISION
                                            (CADR LI)))
                                   ((MATCH (QUOTE (RESOLVE THE DECISION 
                                                           ANY1))
                                           LI)
                                    (VECTOR RESOLVE:DECISION
                                            (VECTOR (VECTOR BECAUSE OF 
                                                            DIRECT 
                                                            COMMAND)
                                                    (@ ANY1]
                             IMPLICIT:ARGS (D1)
                             EXPLICIT:ARGS (D)
                             EXPLICIT:ARGS:CHECK [OR
                                                   (EQUAL (CADDDR
                                                            D)
                                                          (VECTOR
                                                            BECAUSE OF 
                                                            DIRECT 
                                                            COMMAND))
                                                   (AND
                                                     (MEMBER D 
                                             DEFERRED:DECISION:LIST)
                                                     (EVAL
                                                       (CADDDR D]
                             WHAT (VECTOR RESOLVE THE DECISION
                                          (CADDR D)
                                          BECAUSE
                                          (CADR D)
                                          IS NOW TRUE; FIRST TRY TO 
                                          DEFER IT A LITTLE LONGER)
                             HOW (VECTOR TRY TO DEFER (CADDR D)
                                         ;ELSE TRY TO RESOLVE IT WITH 
                                         PRESENT KNOWLEDGE ;ELSE ASK 
                                         THE USER TO RESOLVE IT)
                             WHY (VECTOR AS FAR AS WE KNOW AT THIS 
                                         INSTANT, THE DECISION
                                         (CADDR D)
                                         CANNOT BE DEFERRED ANY LONGER)
                             SPEC:WHY (QUOTE (NO SPECIAL REASON))
                             MAIN:EFFECTS [((VECTOR RESOLVED DECISION 
                                                    ANY1)
                                            (VECTOR
                                              RESOLVE:DECISION
                                              (VECTOR (VECTOR BECAUSE 
                                                              OF DIRECT 
                                                            COMMAND)
                                                      (@ D]
                             MINOR:EFFECTS NIL
                             WHEN NIL
                             META:CODE [COND
                                         ((MEMBER (CADR D)
                                                  
                                             RESOLVED:DECISION:LIST)
                                          T)
                                         (T (ASK:USER:ABOUT
                                              (CADR D))
                                            (SETQ 
                                             RESOLVED:DECISION:LIST
                                                  (CONS (CADR D)
                                                        
                                             RESOLVED:DECISION:LIST]
                             COMMENTS NIL
                             PRE:REQUISITES NIL
                             CO:REQUISITES NIL
                             POST:REQUISITES NIL
                             DEMONS NIL
                             AFFECTS NIL
                             COMPLEXITY:VECTOR (.5 .5 .5 .5)
                             GENERALIZATIONS NIL
                             SPECIALIZATIONS NIL
                             ALTERNATIVES NIL
                             PREDICATE NIL)
  (PUTPROPS SATISFY IDEN [((AND (EQUAL (CAR LI)
                                       SATISFY)
                                (EQUAL (LENGTH LI)
                                       2))
                           (VECTOR SATISFY (TRANSLATE (CADR LI)
                                                      T]
                    IMPLICIT:ARGS (TEMP:LIST)
                    EXPLICIT:ARGS (G)
                    WHAT (TUPLE SATISFY THE SIMPLE SUBGOAL
                                (@ G))
                    HOW (TUPLE PASS CONTROL TO THE SIMPLEST SUFFICIENT 
                               BEING)
                    WHY (TUPLE (@ G)
                               IS A REQUISITE TO BE SATISFIED)
                    WHEN NIL
                    META:CODE [COND
                                ([MEMBER
                                   (EVAL (CADDDR G))
                                   (EVAL
                                     (SETQ
                                       TEMP:LIST
                                       (COLON:BACK
                                         (COPY (LIST (CADR G)
                                                     (CADDR G)
                                                     (QUOTE LIST]
                                 T)
                                (T
                                  (PROG
                                    (B:LIST)
                                    [MAPC
                                      EFFECTS:TABLE
                                      (FUNCTION
                                        (LAMBDA
                                          (E1)
                                          (COND
                                            ((MATCH (CAR E1)
                                                    G)
                                             (SETQ
                                               B:LIST
                                               (CONS
                                                 (EVAL (CADR E1))
                                                 B:LIST]
                                    (SETQ BECAUSE
                                          (VECTOR WE CALL THE SIMPLEST 
                                                  BEING WHICH CAN BRING 
                                                  ABOUT THE EFFECT
                                                  (@ G)))
                                    (COND
                                      [B:LIST
                                        (RETURN
                                          (PROG
                                            (CB:LIST)
                                            [SETQ
                                              CB:LIST
                                              (COPY
                                                (MAPCAR B:LIST
                                                        (QUOTE CDR]
                                            (SORT CB:LIST A:BEING:ORDER)
                                            LABEL5
                                            (SETQ POS:B (CAR CB:LIST))
                                            (EVAL POS:B)
                                            (COND
                                              [(MEMBER
                                                 (EVAL (CADDDR G))
                                                 (EVAL TEMP:LIST))
                                               (RETURN (SETQ
                                                         
                                                 PUP:SATISFIED:LIST
                                                         (CONS G 
                                                 PUP:SATISFIED:LIST]
                                              ((CDR CB:LIST)
                                               (SETQ CB:LIST
                                                     (CDR CB:LIST))
                                               (GO LABEL5))
                                              (T NIL]
                                      (T (RETURN NIL]
                    COMMENTS ((SETQ G (EVAL G)))
                    PRE:REQUISITES NIL
                    CO:REQUISITES NIL
                    POST:REQUISITES NIL
                    EXPLICIT:ARGS:CHECK T
                    DEMONS NIL
                    MAIN:EFFECTS [((VECTOR PUP SATISFIED ANY1)
                                   (VECTOR SATISFY (@ ANY1]
                    MINOR:EFFECTS NIL
                    AFFECTS [APPEND
                              [MAPCAR
                                (PROG
                                  (B:LIST)
                                  [MAPC
                                    EFFECTS:TABLE
                                    (FUNCTION
                                      (LAMBDA
                                        (E1)
                                        (COND
                                          ((MATCH (CAR E1)
                                                  G)
                                           (SETQ
                                             B:LIST
                                             (CONS (EVAL (CADR E1))
                                                   B:LIST]
                                  (RETURN B:LIST))
                                (FUNCTION
                                  (LAMBDA
                                    (Y)
                                    (COND
                                      (Y (CONS Y (QUOTE (POSSIBLE:CALLED
                                                          ]
                              (QUOTE ((TRY:BEING CALLED)
                                      (SORT CALLED)
                                      (A:BEING:ORDER CALLED]
                    COMPLEXITY:VECTOR (0.0 .3 .2 .4)
                    GENERALIZATIONS (SERVE)
                    SPECIALIZATIONS (TRY:BEING)
                    ALTERNATIVES (WRITE:PROGRAM 
                                        ADAPT:PRECONCEIVED:FUNCTION)
                    BEING T
                    SPEC:WHY (QUOTE (NO SPECIAL REASON)))
  (PUTPROPS SERVE IDEN (((EQUAL LI (QUOTE (SERVE)))
                         (VECTOR SERVE)))
                  IMPLICIT:ARGS NIL
                  EXPLICIT:ARGS NIL
                  WHAT (TUPLE DO ANYTHING THE USER ASKS)
                  HOW (TUPLE GET A TASK FROM THE USER)
                  WHY (TUPLE FUNDAMENTAL DRIVE TO SERVE THE USER)
                  WHEN NIL
                  META:CODE (PROG (UNKNOWN:TASK)
                                  (SETQ UNKNOWN:TASK NON:EXECUTABLE)
                                  (SETQ BECAUSE (VECTOR THE CURRENT 
                                                        TASK
                                                        (@ UNKNOWN:TASK)
                                                        IS NOT 
                                                        EXECUTABLE AND 
                                                        WE HAVE NOTHING 
                                                        ELSE TO DO AT 
                                                        THE PRESENT 
                                                        TIME))
                                  LABEL6
                                  (COND ((NOT (MEMBER UNKNOWN:TASK 
                                               EXECUTABLE:INFO:LIST))
                                         (MAPC USER:INTERRUPT:DEMONS
                                               (QUOTE APPLY*))
                                         (OBTAIN:USABLE:INFORMATION
                                           (QUOTE UNKNOWN:TASK))
                                         (GO LABEL6)))
                                  (SETQ ATTEMPTING:SOMETHING:LIST
                                        (CONS UNKNOWN:TASK 
                                          ATTEMPTING:SOMETHING:LIST))
                                  (SETQ ATTEMPTING:ANYTHING:LIST
                                        (CONS UNKNOWN:TASK 
                                           ATTEMPTING:ANYTHING:LIST))
                                  (SETQ BECAUSE
                                        (VECTOR WE FINALLY HAVE AN 
                                                EXECUTABLE TO TASK TO 
                                                DO, NAMELY
                                                (@ UNKNOWN:TASK)))
                                  (EVAL (CDR UNKNOWN:TASK)))
                  COMMENTS ((SETQ PUP:WANTS:LIST (CONS (VECTOR ANY TASK)
                                                       PUP:WANTS:LIST)))
                  PRE:REQUISITES ((VECTOR AWARE USER
                                          (VECTOR PUP WANTS ANY TASK)))
                  CO:REQUISITES NIL
                  POST:REQUISITES NIL
                  EXPLICIT:ARGS:CHECK T
                  DEMONS NIL
                  MAIN:EFFECTS (((VECTOR ATTEMPTING SOMETHING)
                                 (VECTOR SERVE))
                                ((VECTOR ATTEMPTING ANYTHING)
                                 (VECTOR SERVE)))
                  MINOR:EFFECTS NIL
                  AFFECTS NIL
                  COMPLEXITY:VECTOR (.2 .4 .6 .8)
                  GENERALIZATIONS NIL
                  SPECIALIZATIONS (WRITE:PROGRAM COUNSEL)
                  ALTERNATIVES (IGNORE REBEL)
                  BEING T
                  SPEC:WHY (QUOTE (NO SPECIAL REASON)))
  (PUTPROPS STUDY:TYPE BEING T
                       IDEN [((MATCH (QUOTE (STUDY:TYPE ANY1))
                                     LI)
                              (VECTOR STUDY:TYPE (CADR LI]
                       IMPLICIT:ARGS NIL
                       EXPLICIT:ARGS (B:CALL)
                       EXPLICIT:ARGS:CHECK (GETP (CADR B:CALL)
                                                 BEING)
                       WHAT (TUPLE INVESTIGATE THE VARIOUS 
                                   SPECIALIZATIONS OF (@ B:CALL))
                       HOW (TUPLE TRANSFER THE SPECIALIZATIONS
                                  (GETP (CADR B:CALL)
                                        SPECIALIZATIONS)
                                  OF
                                  (@ B:CALL)
                                  ONTO THE LIST OF DECISIONS WHICH MUST 
                                  BE ATTENDED TO)
                       WHY (TUPLE BECAUSE THE MORE SPECIFIC OUR 
                                  KNOWLEDGE OF WHAT IS WANTED, THE MORE 
                                  EASILY AND COMPLETELY WE MAY SATISFY 
                                  THAT REQUEST)
                       SPEC:WHY (QUOTE (NO SPECIAL REASON))
                       MAIN:EFFECTS [((VECTOR TYPE OF
                                              (VECTOR ANY1 HAS BEEN 
                                                      STUDIED))
                                      (VECTOR STUDY:TYPE (@ ANY1)))
                                     ((VECTOR PUP STUDIED
                                              (VECTOR TYPE OF ANY1))
                                      (VECTOR STUDY:TYPE (@ ANY1]
                       MINOR:EFFECTS NIL
                       WHEN NIL
                       META:CODE (PROGN
                                   [MAPC
                                     (CDR (GETP (CADR B:CALL)
                                                SPECIALIZATIONS))
                                     (FUNCTION
                                       (LAMBDA
                                         (A)
                                         (COND
                                           ((ATOM A)
                                            (SETQ 
                                           UNDEFERRED:DECISION:LIST
                                                  (CONS A 
                                           UNDEFERRED:DECISION:LIST)))
                                           ((ATOM (CAR A))
                                            (SETQ 
                                           UNDEFERRED:DECISION:LIST
                                                  (CONS (EVAL A)
                                                        
                                           UNDEFERRED:DECISION:LIST)))
                                           (T
                                             (SETQ
                                               UNDEFERRED:DECISION:LIST
                                               (CONS
                                                 (APPLY*
                                                   (EVAL (CAR A))
                                                   B:CALL)
                                                 
                                           UNDEFERRED:DECISION:LIST]
                                   (SETQ PUP:STUDIED:LIST
                                         (CONS (VECTOR TYPE OF
                                                       (@ B:CALL))
                                               PUP:STUDIED:LIST))
                                   (SETQ TYPE:OF:LIST
                                         (CONS (VECTOR (@ B:CALL)
                                                       HAS BEEN STUDIED)
                                               TYPE:OF:LIST)))
                       COMMENTS NIL
                       PRE:REQUISITES NIL
                       CO:REQUISITES NIL
                       POST:REQUISITES NIL
                       DEMONS NIL
                       AFFECTS NIL
                       COMPLEXITY:VECTOR (.5 .5 .5 .5)
                       GENERALIZATIONS NIL
                       SPECIALIZATIONS NIL
                       ALTERNATIVES NIL
                       PREDICATE NIL)
  (PUTPROPS TRANSLATE IDEN [((AND (EQUAL (CAR LI)
                                         TRANSLATE T)
                                  (EQUAL (LENGTH LI)
                                         2))
                             (VECTOR TRANSLATE (CADR LI]
                      BEING T
                      IMPLICIT:ARGS NIL
                      EXPLICIT:ARGS (NEW:INFO FORCE:TRANSLATE)
                      WHAT (TUPLE TRANSLATE A PIECE OF UNTRANSLATED NEW 
                                  INFORMATION)
                      HOW (TUPLE TRANSFORM (@ NEW:INFO)
                                 INTO MORE EXECUTABLE FORM)
                      WHY (TUPLE EW INFORMATION (@ NEW:INFO)
                                 IS DECLARATIVE AND MUST BE MADE 
                                 PROCEDURAL BEFORE IT MAY BE USED BY 
                                 THE SYSTEM)
                      SPEC:WHY (QUOTE (NO SPECIAL REASON))
                      WHEN ((T (COND (USABLE:INFO:LIST -60)
                                     (T 50))
                               (QUOTE (BECAUSE THE ABSENCE OF USABLE 
                                               INFORMATION ABDUCTIVELY 
                                               CALLS FOR ITS 
                                               PRODUCTION; ITS PRESENCE 
                                               DEMANDS ITS ASSIMILATION)
                                      ))
                            ((MEMBER (EVAL NEW:INFO)
                                     TRANSLATED:INFO:LIST)
                             -111
                             (VECTOR BECAUSE WE HAVE ALREADY TRANSLATED 
                                     IT IMPLIES WE SHOULDNT NOW)))
                      META:CODE (PROG
                                  (LI TEMPTR)
                                  (SETQ LI (CDR (EVAL NEW:INFO)))
                                  [MAPC
                                    IDEN:TABLE
                                    (FUNCTION
                                      (LAMBDA
                                        (II)
                                        (COND
                                          ((EVAL (CAR II))
                                           [COND
                                             ((SETQ
                                                TEMPTR
                                                (EVAL (CADR II)))
                                              (SETQ
                                                TRANSLATED:PAIR:LIST
                                                (CONS
                                                  (LIST (EVAL NEW:INFO)
                                                        TEMPTR)
                                                  TRANSLATED:PAIR:LIST))
                                              (SETQ
                                                TRANSLATED:INFO:LIST
                                                (CONS (EVAL NEW:INFO)
                                                      
                                               TRANSLATED:INFO:LIST))
                                              (SETQ 
                                               EXECUTABLE:INFO:LIST
                                                    (CONS TEMPTR 
                                               EXECUTABLE:INFO:LIST]
                                           (RETURN TEMPTR]
                                  (PRIN1 
                                  "SORRY, I CANNOT TRANSLATE THIS.")
                                  (SETQ NEW:INFO:LIST
                                        (PULLOUT (EVAL NEW:INFO)
                                                 NEW:INFO:LIST))
                                  (RETURN NIL))
                      COMMENTS NIL
                      PRE:REQUISITES NIL
                      CO:REQUISITES NIL
                      POST:REQUISITES NIL
                      EXPLICIT:ARGS:CHECK (OR (MEMBER (EVAL NEW:INFO)
                                                      NEW:INFO:LIST)
                                              (NULL (EVAL NEW:INFO))
                                              FORCE:TRANSLATE)
                      DEMONS (TUPLE IDIOM:DEMON)
                      MAIN:EFFECTS [((VECTOR USABLE INFO
                                             (VECTOR NEW INFO ANY1))
                                     (VECTOR TRANSLATE (@ ANY1)))
                                    ((VECTOR TRANSLATED INFO ANY1)
                                     (VECTOR TRANSLATE (@ ANY1]
                      MINOR:EFFECTS ((VECTOR NEW INFO))
                      AFFECTS (QUOTE ((LOOKUP CALLED)
                                      (PARSE CALLED)))
                      COMPLEXITY:VECTOR (.3 .5 .5 .5)
                      GENERALIZATIONS NIL
                      SPECIALIZATIONS NIL
                      ALTERNATIVES NIL)
  (PUTPROPS WHEN:NEXT BEING T
                      IDEN [((MATCH (QUOTE (WHEN:NEXT (VECTOR ANY1 ANY2 
                                                              ANY3)))
                                    LI)
                             (VECTOR WHEN:NEXT (CADR LI)))
                            ((MATCH (QUOTE (THE NEXT TIME
                                                (VECTOR ANY1 ANY2 ANY3))
                                           )
                                    LI)
                             (VECTOR WHEN:NEXT (CADDDR LI]
                      IMPLICIT:ARGS (UTILIZATION UTIL2 AWARE:LIST)
                      EXPLICIT:ARGS (ACT)
                      EXPLICIT:ARGS:CHECK (AND
                                            (MEMBER
                                              (CADR ACT)
                                              (QUOTE (USER PUP)))
                                            (EQUAL (LENGTH ACT)
                                                   4))
                      WHAT (TUPLE FIND THE NEXT SITUATION IN WHICH
                                  (CADR ACT)
                                  MUST PERFORM THE OPERATION
                                  (CADDR ACT)
                                  ON
                                  (CADDDR ACT))
                      HOW (TUPLE EXPLORE THE EFFECTS OF (CADDR ACT)
                                 ING
                                 (CADDDR ACT))
                      WHY (TUPLE (CADR ACT)
                                 CAN THEN FORGET (CADDDR ACT)
                                 UNTIL THE NEXT SITUATION WE FIND HERE)
                      SPEC:WHY (QUOTE (NO SPECIAL REASON))
                      MAIN:EFFECTS [((VECTOR AWARE ANY1 (DELAYABLE
                                               ANY2))
                                     (VECTOR WHEN:NEXT
                                             (VECTOR (@ ANY1)
                                                     (CADR ANY2)
                                                     (CADDR ANY2]
                      MINOR:EFFECTS NIL
                      WHEN NIL
                      META:CODE (PROGN
                                  [SETQ
                                    RELEVANT:KNOWLEDGE
                                    (COLON:BACK
                                      (COPY (TUPLE (CADR (CADDDR ACT))
                                                   (CADR BEING:STACK)
                                                   KNOWLEGE]
                                  [SETQ
                                    UTILIZATION
                                    (VECTOR
                                      DELAYABLE
                                      (@ ACT)
                                      UNTIL
                                      (SETQ
                                        UTIL2
                                        (UTILIZE
                                          RELEVANT:KNOWLEDGE 
                                          APPLIED:SO:AS:TO:KEEP
                                          (VECTOR
                                            IRRELEVANT
                                            (APPEND
                                              (VECTOR (CADR ACT)
                                                      (CADDR ACT))
                                              (CDDAR (CDDDR ACT]
                                  [SETQ
                                    AWARE:LIST
                                    (COLON:BACK
                                      (COPY (LIST (QUOTE AWARE)
                                                  (CADR ACT)
                                                  (QUOTE LIST]
                                  (SET AWARE:LIST (CONS UTILIZATION
                                                        (EVAL 
                                                         AWARE:LIST)))
                                  UTIL2)
                      COMMENTS NIL
                      PRE:REQUISITES NIL
                      CO:REQUISITES NIL
                      POST:REQUISITES NIL
                      DEMONS NIL
                      AFFECTS NIL
                      COMPLEXITY:VECTOR (.6 .7 .5 .5)
                      GENERALIZATIONS NIL
                      SPECIALIZATIONS NIL
                      ALTERNATIVES NIL
                      PREDICATE NIL)
  (PUTPROPS WRITE:PROGRAM IDEN [((AND (EQUAL (CAR LI)
                                             WRITE:PROGRAM)
                                      (EQUAL (LENGTH LI)
                                             2))
                                 (VECTOR WRITE:PROGRAM
                                         (TRANSLATE (CADR LI)
                                                    T)))
                                ((MATCH (QUOTE (WRITE A PROGRAM WHICH 
                                                      DOES FRAG1))
                                        LI)
                                 (VECTOR WRITE:PROGRAM
                                         (TRANSLATE (INVECTOR FRAG1)
                                                    T]
                          BEING T
                          IMPLICIT:ARGS (TASK:TYPE TASK:NAME)
                          EXPLICIT:ARGS (TASK)
                          WHAT (TUPLE WRITE A PROGRAM WHICH DOES
                                      (@ TASK))
                          HOW (TUPLE CREATE SPECIALIZED LISP CODE WHICH 
                                     WILL DO (@ TASK))
                          WHY (TUPLE FUNDAMENTAL DRIVE TO OBEY USER; 
                                     ALSO, IT IS NECESSARY THAT CODE BE 
                                     WRITTEN TO DO (@ TASK)
                                     IN ORDER THAT THE TASK
                                     (@ TASK)
                                     MIGHT BE COMPLETED; ALSO, EXAMINE 
                                     SPEC:WHY)
                          SPEC:WHY (QUOTE (NO SPECIAL REASON))
                          WHEN [(T (COND ((MEMBER TASK ABLE:PUP:LIST)
                                          -75)
                                         (T 40))
                                   (TUPLE BECAUSE A PRE:EXISTING 
                                          ABILITY TO DO (@ TASK)
                                          IMPLIES THAT WRITING A NEW 
                                          PROGRAM TO ACCOMPLISH IT IS 
                                          SUPERFLUOUS AND, CONVERSELY, 
                                          THE INABILITY TO DO
                                          (@ TASK)
                                          ABDUCTIVELY ENCOURAGES US 
                                          THAT WE ARE ON THE RIGHT 
                                          TRACK))
                                ((MEMBER TASK WRITTEN:PROGRAMS:LIST)
                                 -80
                                 (QUOTE (BECAUSE WE ARE NOT AFTER MUCH 
                                                 EFFICIENCY, AND IF A 
                                                 PROGRAM ALREADY 
                                                 EXISTS, THEN WE SHOULD 
                                                 USE IT)))
                                ((MEMBER (TUPLE PUP IS ABOUT TO WRITE A 
                                                PROGRAM TO DO
                                                (@ TASK))
                                         AWARE:USER:LIST)
                                 70
                                 (QUOTE (BECAUSE WE GO BY THE OLD 
                                                 ENGLISH LEGAL RULE, 
                                                 THAT SILENCE SIGNIFIES 
                                                 APPROVAL)))
                                (T (COND (NEW:INFO:LIST -120)
                                         (T 40))
                                   (QUOTE (BECAUSE WE SHOULD USE UP THE 
                                                   NEW INFORMATION 
                                                   BEFORE WRITING 
                                                   PROGRAMS ALSO: 
                                                   BECAUSE IF NO NEW 
                                                   INFO IS PRESENT, 
                                                   THEN WE NEEDN'T FEEL 
                                                   GUILTY ABOUT 
                                                   STARTING TO WRITE A 
                                                   PROGRAM]
                          META:CODE [PROG
                                      (DONE PGM)
                                      (SETQ PGM (VECTOR))
                                      (SETQ UNDEFINED:SECTION:LIST
                                            (CONS (VECTOR (@ TASK)
                                                          NAME
                                                          (@ TASK:NAME))
                                                  
                                             UNDEFINED:SECTION:LIST))
                                      LABEL4
                                      (COND
                                        ((MEMBER TASK:NAME 
                                              WRITTEN:PROGRAMS:LIST)
                                         (SETQ WRITTEN:PROGRAMS:LIST
                                               (CONS TASK 
                                              WRITTEN:PROGRAMS:LIST))
                                         (SETQ ABLE:PUP:LIST
                                               (CONS TASK ABLE:PUP:LIST)
                                               )
                                         (SETQ ABLE:USER:LIST
                                               (CONS TASK 
                                                     ABLE:USER:LIST))
                                         (RETURN T))
                                        ((MEMBER NIL
                                                 (MAPCAR (APPEND 
                                              USER:INTERRUPT:DEMONS 
                                                     CURRENT:DEMONS)
                                                         (QUOTE APPLY*))
                                                 )
                                         [CHOOSE:FROM
                                           (QUOTE ((
OBTAIN:USABLE:INFORMATION PGM)
                                                   (USE:INFORMATION
                                                     PGM)
                                                   (
FILL:IN:UNDEFINED:SECTION PGM)
                                                   (
CLARIFY:IMPROBABLE:SITUATION PGM)
                                                   (
ADAPT:PRECONCEIVED:FUNCTION PGM)
                                                   (FIX:INCORRECT:PIECE
                                                     PGM]
                                         (GO LABEL4))
                                        (T (RETURN NIL]
                          COMMENTS NIL
                          PRE:REQUISITES ((VECTOR AWARE USER
                                                  (VECTOR PUP IS ABOUT 
                                                          TO WRITE A 
                                                          PROGRAM TO DO
                                                          (@ TASK)))
                                          (VECTOR NAMED EXPRESSION
                                                  (@ TASK)
                                                  (VECTOR TASK:NAME))
                                          (VECTOR AWARE USER
                                                  (VECTOR THE NAME OF 
                                                          THE PROGRAM 
                                                          TO DO
                                                          (@ TASK)
                                                          IS
                                                          (@ TASK:NAME))
                                                  )
                                          (VECTOR TYPE OF
                                                  (VECTOR (@ TASK)
                                                          HAS BEEN 
                                                          STUDIED)))
                          CO:REQUISITES NIL
                          POST:REQUISITES ((VECTOR AWARE USER
                                                   (VECTOR
                                                     THE PROGRAM
                                                     (@ TASK:NAME)
                                                     TO DO
                                                     (@ TASK)
                                                     IS COMPLETE)))
                          EXPLICIT:ARGS:CHECK T
                          DEMONS (TUPLE PROGRAM:WRITING:DEMONS 
                                        DEFERRAL:DEMON 
                                        REINVESTIGATION:DEMON)
                          MAIN:EFFECTS [((VECTOR ABLE PUP ANY1)
                                         (VECTOR WRITE:PROGRAM
                                                 (@ ANY1)))
                                        ((VECTOR WRITTEN PROGRAMS ANY1)
                                         (VECTOR WRITE:PROGRAM
                                                 (@ ANY1)))
                                        ((VECTOR ABLE USER ANY1)
                                         (VECTOR WRITE:PROGRAM
                                                 (@ ANY1]
                          MINOR:EFFECTS NIL
                          AFFECTS (QUOTE ((OBTAIN:USABLE:INFORMATION
                                            POSSIBLE:CALLED)
                                          (USE:INFORMATION 
                                                    POSSIBLE:CALLED)
                                          (FILL:IN:UNDEFINED:SECTION
                                            POSSIBLE:CALLED)
                                          (CLARIFY:IMPROBABLE:SITUATION
                                            POSSIBLE:CALLED)
                                          (ADAPT:PRECONCEIVED:FUNCTION
                                            POSSIBLE:CALLED)))
                          COMPLEXITY:VECTOR ((PLUS .3
                                                   (TIMES .6
                                                          (DIMENSION1
                                                            TASK:TYPE)))
                                             .9 .7 .5)
                          GENERALIZATIONS NIL
                          SPECIALIZATIONS NIL
                          ALTERNATIVES NIL)
  [MAPC (APPEND PUP5FNS SET:OF:BEINGS SET:OF:BEING:PARTS)
        (FUNCTION (LAMBDA (V)
                          (SET V V]
  (MAPC SET:OF:BEINGS SEMI:COMPILE)
  (PRIN1 
    "  MINI PUP FILE:  USE FAD OR AD OR MAKEFILE FOR NEW VERSION  ")
STOP